На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Проблема при передаче данных в базу sql , При передаче данных на одном компе все передается, а при передаче данных по сети на сервер передается только часть
    Всем доброго времени суток! У меня ситуация такая – есть своя программа на 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.
    Я не понимаю, почему по сетке на сервер передается только какая-то часть. На локальном компьютере все работает и данные передаются полностью. В программе меняется только строка подключения к базе.
      Код в студию. Момент формирования insert и его выполнения
        Цитата
        Перегоняется только небольшая часть. Закономерностей зависимости кол-ва перегоняемых строчек от размера файла я не заметил.

        так и должно быть
          CommandTimeout,ConnectionTimeout и остальные настройки соединения.

          Цитата Павел Калугин @
          Код в студию. Момент формирования insert и его выполнения

          :yes:
          ЗЫ Надежней сделать загрузку на сервере.
            Разбивать на транзакции по нескольку инсертов в каждой. Можно начать с одного исерта на транзакцию и дальше наращивать количество инсертов.
            Проверять результат выполнения запроса (возможно, где-то пустой try-except или как там АДО возвращает результат).
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0247 ]   [ 16 queries used ]   [ Generated: 28.03.24, 22:20 GMT ]