Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.30.118] |
|
Сообщ.
#1
,
|
|
|
Всем доброго времени суток! У меня ситуация такая – есть своя программа на Delphi 2010 для перегонки данных из html-файлов в базу на sql (SQL Server 2008). Сначала я ее опробовал на локальном компьютере. В программе прописал в строке соединения AdoConnection параметры для подключения к базе, расположенной на компьютере:
FormMain.AdoConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=BazZad’; Все работает прекрасно, связь есть, данные полностью перегоняются как надо. Затем попытался перегнать данные в базу sql, расположенную на сервере, по локальной сети. Взял эту же программу, в ней изменил только сроку подсоединения AdoConnection: FormMain.AdoConnection1.ConnectionString:='Provider=SQLOLEDB.1; Password=111; Persist Security Info=True; User ID=admin; Data Source=server; Initial Catalog=Baza'; Связь с базой есть, данные перегоняются. Но! Перегоняется только небольшая часть. Закономерностей зависимости кол-ва перегоняемых строчек от размера файла я не заметил. Файлы абсолютно одинаковые по структуре и приблизительно равные по количеству строк с данными, строчки одни и те же, меняются только цифры. Время перегонки данных для каждого файла разное. В файле «январь» 15258 строчек, из них в базу перегоняется только 954. В файле «февраль» 13870 строчек, из них перегоняется только 323. В файле «март» 14015 строчек, передаются 2697. Причем вот не важно, сколько строчек в файле, в файле «март» будь хоть 100000 строк, но перегонится только 2697, а если там 1000, то перегонится 1000, то есть до 2697. Я не понимаю, почему по сетке на сервер передается только какая-то часть. На локальном компьютере все работает и данные передаются полностью. В программе меняется только строка подключения к базе. |
Сообщ.
#2
,
|
|
|
Код в студию. Момент формирования insert и его выполнения
|
Сообщ.
#3
,
|
|
|
Цитата Перегоняется только небольшая часть. Закономерностей зависимости кол-ва перегоняемых строчек от размера файла я не заметил. так и должно быть |
Сообщ.
#4
,
|
|
|
CommandTimeout,ConnectionTimeout и остальные настройки соединения.
Цитата Павел Калугин @ Код в студию. Момент формирования insert и его выполнения ЗЫ Надежней сделать загрузку на сервере. |
Сообщ.
#5
,
|
|
|
Разбивать на транзакции по нескольку инсертов в каждой. Можно начать с одного исерта на транзакцию и дальше наращивать количество инсертов.
Проверять результат выполнения запроса (возможно, где-то пустой try-except или как там АДО возвращает результат). |