Вниз
Скачать: CL | DM;

TClientDataSet.ApplyUpdates(-1)   Найти похожие ветки 

 
Jok   (2005-11-18 16:38) [0]

Мастаки, делаю закачку из файлов в бд. Для этого у меня такая схема:
1. TADODataSet->TDataSetProvider->TClientDataSet
2. File->TADODataSet.LoadFromFile
3. В цыкле заполняю TClientDataSet и делаю сабж.
Смотрю профайлером какие запросы идут на сервак, а там
текстовые поля почему-то дополняются пробелами...
DisableTrimString = false.
Как бороть?


 
Vlad ©   (2005-11-18 16:43) [1]


> Jok   (18.11.05 16:38)  

1. Какой тип БД?
2. Какой тип у текстовых полей в БД?
3. А зачем в этой связке нужны DataSetProvider и ClientDataSet?


 
Jok   (2005-11-18 16:49) [2]

1. MS SQL
2. varchar
3. А как? строить самому запрос?


 
Jok   (2005-11-18 17:22) [3]

Проблема решилась, блин...
nvarchar... сделал varchar стало нормально работать, получается для юникода бага....


 
Vlad ©   (2005-11-18 18:37) [4]


> 3. А как? строить самому запрос?

Ну твой метод, мягко говоря, неоптимален.
Если уж ты в цикле проходишь по ADODataSet, то не резонней ли было бы сразу (в том же цикле) выполнять Insert в базу, с помощью ADOCommand, например.
Или, если у тебя файл хранится в XML формате, то ты можешь вобще не пользоваться DataSetом, а просто передать XML строчку в хранимую процедуру, а та, в свою очередь запишет в базу. Благо SQL сервер с некоторых пор умеет работать с XML :-)


 
Jok   (2005-11-18 19:15) [5]


> Если уж ты в цикле проходишь по ADODataSet, то не резонней
> ли было бы сразу (в том же цикле) выполнять Insert в базу,
> с помощью ADOCommand, например.

Можно пример, а то мне непонятно. Спасибо.


 
Jok   (2005-11-18 19:55) [6]


> Или, если у тебя файл хранится в XML формате, то ты можешь
> вобще не пользоваться DataSetом, а просто передать XML строчку
> в хранимую процедуру, а та, в свою очередь запишет в базу.
> Благо SQL сервер с некоторых пор умеет работать с XML :-)

Вот это уж точно не оптимально. В бинарном виде хранится.
Да, кстати, я гружу постоянно не одну таблицу, а мне все равно какую...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
4-1131416118
msgipss
2005-11-08 05:15
2006.01.15
Можно ли получить время нахождения процесса в памяти


6-1128149397
joisy
2005-10-01 10:49
2006.01.15
Restart file download after disconnect


3-1132433132
Sword
2005-11-19 23:45
2006.01.15
Interbase не добавляет поле с пустой записью


14-1135004371
vecna
2005-12-19 17:59
2006.01.15
про проездные билетики в метро...


5-1120978357
Серджио_Точини
2005-07-10 10:52
2006.01.15
Создание компонента для ввода двоичных чисел с фикс. запятой




   Наверх