powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос про dbf
8 сообщений из 8, страница 1 из 1
Вопрос про dbf
    #33594574
Mnemonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Пытаюсь реализовать синхронизацию таблиц с dbf на SQL
Может кто-то таким занимался и может поделиться опытом и примерами???
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33594754
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то:
1) dbf имеет ту же структуру, что и таблица SQL Server (кстати, какой SQL - MS SQL SERVER, Interbase...?)
2) то чего нет в dbf удалить из SQL таблицы
3) то что изменено в dbf изменить в SQL
4) то чего нет в SQL - добавить
-
если это так, то делаем перечисленное по буквам.
Пример открытия dbf в MS SQL Server:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE @DictionaryPath nvarchar( 128 ) 
DECLARE @TableName nvarchar( 32 ) 
DECLARE @sSQL nvarchar( 512 ) 

SET @TableName = 'Parit' 
SET @DictionaryPath = 'D:\uszn\' 
SET @sSQL= 'select * '+'
  FROM OPENROWSET(''MSDASQL'',''Driver={Microsoft dBase Driver (*.dbf)};DBQ= ' + 
    @DictionaryPath + ''',''Select * from ' + @TableName + '.dbf'')' 

exec(@sSQL)
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33594798
Mnemonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую MS SQL Server 2000
Синхронизацию делаю при помощи Extended Stored Procedure (dll) на С++
Вытаскиваю записи из dbf через OPENQUERY (SQL), Потом пишу все записи строки в одну строковую переменную и на основании нее генерирую hash-код, но вот обратно в SQL записи кинуть не получается так как не соответствие типов как я понимаю и за счет этого проблемы со стеком
Работаю при помощи SQLExec, SQLBindParameters.
На основании сгенерированного кода либо вставка в SQL, либо обновление.
А на таблицу дкмаю потом повесить триггер который анализирует и обратно в dbf...
Кто-то похожее пытался реализовать??7
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33594823
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то больно мудрёно.
авторПотом пишу все записи строки в одну строковую переменную
- может имелось в виду
Потом пишу все поля записи в одну строковую переменную?
автор и на основании нее генерирую hash-код
Объясните тёмному - зачем тут hash?
Ведь байтовое представление поля в dbf и SQL будет разным.
авторРаботаю при помощи SQLExec, SQLBindParameters.
Это, стало быть, ODBC?
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33595123
Mnemonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да работаю через ODBC
Имелось ввиду что все поля одной записи, тоже верно
А код генерирую, чтоб на его основании определять: есть такая запись в SQL (требуется вставка или обновление). Другую уникальность пока придумать не выходит, если есть другой способ, то подскажите...
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33596154
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА код генерирую, чтоб на его основании определять: есть такая запись в SQL (требуется вставка или обновление). Другую уникальность пока придумать не выходит, если есть другой способ, то подскажите...
Если я знаю механизм hash, то он не гарантирует уникальности.
1)А почему нельзя поименно сравнивать значения полей?
2) не более ли уместно использование DTS?
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33596298
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MnemonikДобрый день
Пытаюсь реализовать синхронизацию таблиц с dbf на SQL
Может кто-то таким занимался и может поделиться опытом и примерами???У меня Оракловская центральная база. Я к каждой таблице, котороая клиентам нужна, триггер повесил, который в отдельную таблицу логи об инсёртах апдейтах и делитах пишет. Мой сервак за ней следит и на клиенты отсылает измененные данные, котрые отдельная клиентская длл пишет в локальные базы и одновременно сообщения клиентам шлет. Локальные базы любые - парадокс, дибэйс, оракл, и т.д., в зависимости от настроек в реестре.
...
Рейтинг: 0 / 0
Вопрос про dbf
    #33597697
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MnemonikДа работаю через ODBC
Имелось ввиду что все поля одной записи, тоже верно
А код генерирую, чтоб на его основании определять: есть такая запись в SQL (требуется вставка или обновление). Другую уникальность пока придумать не выходит, если есть другой способ, то подскажите...
Есть другой способ :)
Читаешь запись из исходной таблицы (любого формата, хоть dbf, хоть любой полноценный сервер БД). Формируешь строку типа:
Код: plaintext
1.
insert into TargetTable (pkf1, pkf2, pkf3) select 'a1', 'a2', 'a3' where not exists (select * from TargetTable where pkf1='a1' and pkf2='a2' and pkf3='a3');
update TargetTable set f4='a4', f5='a5', f6= 6  where pkf1='a1' and pkf2='a2' and pkf3='a3';
Здесь pkf* - поля первичного ключа, f* - простые поля, 'a1' - фактические значения которые надо добавить или обновить в целевой таблице.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос про dbf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]