Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.025 c
2-1135584280
check
2005-12-26 11:04
2006.01.15
GUID


4-1131409177
Volf_555
2005-11-08 03:19
2006.01.15
Как в своей программе отловить выключение компьютера?


14-1134672016
YurikGL
2005-12-15 21:40
2006.01.15
Друг попросил задачку решить


6-1128355039
Evil Spirit
2005-10-03 19:57
2006.01.15
FTP через TClientSocket


10-1111469363
BioAngel
2005-03-22 08:29
2006.01.15
Выгрузить dll