|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.08.2009, 17:27 | #1 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 78
|
Идентификатор строки
Здравствуйте. У меня есть таблица в Excele. Ее копия хранится в БД, т.е. таблица с такой же структурой и теми же данными. Мне нужно, чтобы при изменении данных в какой-либо ячейке на листе Excel в БД обновлялась тоже только одна ячейка, соответствующая екселевской. Вопрос, есть ли какой-нибудь уникальный идентификатор у строк в Excele?
|
24.08.2009, 19:13 | #2 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Открою страшную тайну. Уникальным идентификатором строки на рабочем листе является её номер (в предположении что данные добавляются только в конец и строки не удаляются).
|
24.08.2009, 19:22 | #3 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 78
|
Я имела в виду помимо номера. Как раз удаление строки - это и есть для меня главная проблема.
|
24.08.2009, 19:46 | #4 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Тогда, IMHO, проще всего завести свою колонку для ID.
|
24.08.2009, 21:26 | #5 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Другой вариант: при удалении строки запускать скрипт, обновляющий значение номера строки в БД для всех строк ниже удаленной.
|
24.08.2009, 21:38 | #6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте eda.
если используемая БД MS Access, и таблица Excel имеет вид поддерживаемый БД, Ваша задача может быть решена созданием Связанной таблицы в БД с таблицей "копией" и запросом обновляющим "копию". Евгений. |
25.08.2009, 10:15 | #7 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 78
|
Спасибо за советы! У меня MySQL. Таблица Excel содержит 2000 строк как минимум, поэтому обновлять полностью при изменении одной ячейки занимает очень много времени.
|
25.08.2009, 18:09 | #8 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте eda.
"занимает очень много времени" Вы правы только в случае если выполнять обновление перебором. это не касается случая с подключением библиотеки ADO и выполнения SQL запросов. Евгений. |
25.08.2009, 18:45 | #9 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 78
|
Евгений, не могли бы Вы подробнее описать решение с помощью связанной таблицы?
|
25.08.2009, 21:56 | #10 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
последовательность действий может быть такой:
1. создать БД MS Access (файл .MDB) 2. поместить в ней таблицу "копия" 3. создать прилинкованную таблицу с листом Excel (меню Файл / Внешние данные / Связь с таблицами...) 4. создать запрос на обновление измененных(!) записей в таблице "копия" из связанной таблицы Excel И это все, открыв файл БД и выполнив запрос на обновление (одним кликом) данные в таблице - "копия" будут обновлены. При использовании БД MySql конструкция усложняется, таблица "копия" тоже должна быть прилинкованной (связаной) таблицей, но с применением ODBC - драйвер MySql (распространяется бесплатно). примерно так. Евгений. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Идентификатор в DBF | mixer94 | БД в Delphi | 10 | 14.07.2009 13:56 |
Ругаемся, говорим неизвестный идентификатор, хотя работало. | Alex Cones | Общие вопросы Delphi | 6 | 21.04.2009 21:07 |
cout: необъявленный идентификатор | alone_guy | Общие вопросы C/C++ | 1 | 13.02.2009 13:44 |
Как делают уникальный идентификатор строки в БД? | sergey113 | Помощь студентам | 3 | 05.08.2008 17:48 |
Уникальный идентификатор | romets | Win Api | 9 | 03.02.2008 02:30 |