Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: CL | DM;

Вниз

IBClientDataSet - не загружает данные, не обновляет записи   Найти похожие ветки 

 
Siv Soft   (2003-11-20 17:50) [0]

Доброго всем времени суток!
Необходимо из базы данных - Аццесса копировать таблицы в Firebird, использую для этого IBClientDataSet - если данные вбить, то все сохраняется, но пробую загрузить ничего пустой датасет - если ставить заранее имя файла в свойстве FileName, то все грузит на ОК, а если методом - нет. Приведу участок кода:

String file="e:\\DataBase\\emitents.xml";
IBClientDataSet1->FileName=file;
IBClientDataSet1->LoadFromFile(file);

Другая проблемма возникает при попытке обновить данные в таблице Файербед методом ApplyUpdates (таблица пустая) - ругается, что не найдет такой записи. Вот код:

IBClientDataSet1->ApplyUpdates(-1);

Понятно, что такой записи нет в принципе - таблица то пустая, но как тогда можно занести эти данные в таблицу Файербеда?
И как пофиксить с загрузкой этих данных по методу?

Заранее благодарен!


 
Siv Soft   (2003-11-20 18:13) [1]

Удалено модератором
Примечание: Создание пустых сообщений


 
Siv Soft   (2003-11-21 10:52) [2]

Народ, где вы???!!!


 
Zacho ©   (2003-11-21 11:08) [3]

Да похоже, просто никто не использует IBClientDataSet, поэтому и подсказать никто ничего не может.


 
Sandman25 ©   (2003-11-21 11:12) [4]

Нужно либо CreateDataSet и LoadFromFile, либо FileName :=.
Делать и то, и другое одновременно не имеет смысла ИМХО.

PS. С IBClientDataSet не работал, сужу по ClientDataSet.


 
Siv Soft   (2003-11-21 11:17) [5]

Одновременно и не делаю - пробовал разные возможности, просто не грузится с помощью LoadFromFile.


 
Sandman25 ©   (2003-11-21 11:33) [6]

Советую откомпилировать с Use Debug DCU, программно присвоить FileName (я так понял, что это у Вас работает) и посмотреть, как именно вызывается LoadFromFile из SetFileName. Если он вообще вызывается в этом случае :)


 
Siv Soft   (2003-11-21 16:45) [7]

Очень интересная штука получается - если использовать метод LoadFromFiles - то в набор почему-то попадают не данные из файла, а данные из таблицы БД Файербед, с которой он связан. Это если указать имя файла в вызове метода.
А если указывать просто пустую строку "" - как советуется, чтобы он брал имя из FileName свойства, то ругается, что не может открыть файл.
Как можно сделать, чтобы считавалось именно из файла , который и указан?
И как все-таки сделать, чтобы после считывания файла он переносил данные в таблицу Файербеда, т.к. (см. выше) методом который я использовал ничего не получается?


 
sokohigh   (2003-11-21 18:01) [8]

Нужно, чтобы перед ApplyUpdate в ClientDataSet были записи, помеченные как новые, т.е. чтобы у него ChangeCount был > 0 (имелась Delta). При загрузке из файла (cds) Вы получите точно то же состояние ClientDataSet-а, которое было при выгрузке.
Простое решение - загрузить данные во вспомогательный ClientDataSet, затем из него добавить по одной в ClientDataSet, привязанный к базе и сделать ему ApplyUpdates.


 
Siv Soft   (2003-11-24 16:07) [9]

Так вся прелесть IBClientDataSet теряется, хотелось бы, чтобы загрузил и все обновилось. Можно ли так?
И как быть с ЛоадФром?


 
Siv Soft   (2003-11-24 17:24) [10]

Переделал с использованием ClientDataSet, заработало нармально чтение из файла, ApplyUpdates все равно не работает. При изменении записи - и пробе последующего применения изменений - ругается, что
Record not found or changed by another user.
Как сие фиксить?


 
Siv Soft   (2003-11-26 15:48) [11]

ApplyUpdates пофиксил - ошибся в именах полей - надо было большими буквами.
Возник вопрос с трансформацией из XML в DataPacket от Borland.
Что такое трасформационный файл(xtr) и как его сделать самому, не используя XMLMapper?


 
Siv Soft   (2003-11-26 15:49) [12]

ApplyUpdates пофиксил - ошибся в именах полей - надо было большими буквами.
Возник вопрос с трансформацией из XML в DataPacket от Borland.
Что такое трасформационный файл(xtr) и как его сделать самому, не используя XMLMapper?


 
Siv Soft   (2003-11-26 15:51) [13]

Ой...
Извиняюсь за дубль.


 
Sandman25 ©   (2003-11-26 15:53) [14]

>Что такое трасформационный файл(xtr) и как его сделать самому, не используя XMLMapper?

Надо разобраться в его формате и сделать файл самому


 
Siv Soft   (2003-11-26 16:09) [15]

Хороший ответ. Логично. Если бы я знал как, то наверняка вопросов бы не задавал.
Кто-то разобрался? Может кто-то более конкретное подсказать?


 
Siv Soft   (2003-11-26 16:37) [16]

Удалено модератором
Примечание: Создание пустых сообщений


 
Romkin ©   (2003-11-26 16:55) [17]

Трансформационный файл делается один раз и именно XMLMapper. А потом юзаешь его через TXMLTransform и др. со вкладки Data Access


 
sokohigh   (2003-11-26 16:57) [18]

Была в начале этого месяца дискуссия в этом форуме, называлась "загрузка XML в DataSet" - она уже ушла в архив. Мне кажется, Вам стоит с ней ознакомиться.


 
Siv Soft   (2003-11-27 10:54) [19]

Познакомился. Интересно, однако вопрос остался открытым. В конце этой дискуссии так на него и не ответили.
А именно: как программно реализовать файл трансформации? Ведь в той же утилите ХМЛМаппере это делается с помощью компонентов и кода. А в той дискуссии незнайка2003 говорил о компонентах на torry, с помощью которых хмл файл можно загрузить в датасет.


 
Siv Soft   (2003-11-27 15:21) [20]

HELP! HELP! HELP!



Страницы: 1 вся ветка

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
4-62328
frost63
2003-10-22 11:13
2003.12.19
SendTo и копирование


14-62234
asp
2003-11-27 11:26
2003.12.19
Осеннее обострение 8-))


14-62190
Kinder
2003-11-27 19:27
2003.12.19
Соединения ABC


14-62206
TriX
2003-11-26 18:13
2003.12.19
HELP ME !!!!!!!!!!!!!


1-62012
Helg
2003-12-06 21:18
2003.12.19
Как закрыть форму при помощи ESC