Конференция "Базы" » приложение зависает при обращении к Firebird. что делать помогите [D7, IB6.x]
 
  • Tepex © (06.11.08 11:17) [20]
    [18] Закрытие самой 1С помогает, но не всегда. Просто когда закрываешь обработку все переменные обнулются и становятся = неопределено, поэтому связь с ком объектом разрывается и он тоже убивается. в чем тогда может быть причина? ИМХО
  • sniknik © (06.11.08 11:19) [21]
    кстати я бы и это посчитал бы глюком, правда это не всегда "смертельно", от объема зависит, но всегда тормозно
    >
    СтрокаИДЗаявок = СтрокаИДЗаявок + Формат(ТаблицаБазы.fields("orderid").Value,"ЧГ=") + ",";

  • Tepex © (06.11.08 11:20) [22]
    [19] Ну убрал, толку не стало от этого вооще повисла обработка при первом запуске. Если я правильно понимаю то Соединение.CursorLocation = "ltReadOnly"; Это тоже самое что и в делфи ADOConnection.CursorLocation  = "ltReadOnly"; Или может я ошибаюсь?
  • sniknik © (06.11.08 11:22) [23]
    > Это тоже самое что и в делфи ADOConnection.CursorLocation  = "ltReadOnly";
    практически да, и дельфи это даже скомпилировать не даст.... насколько пинимаю.
  • Tepex © (06.11.08 11:23) [24]

    > кстати я бы и это посчитал бы глюком, правда это не всегда
    > "смертельно", от объема зависит, но всегда тормозно
    > > СтрокаИДЗаявок = СтрокаИДЗаявок + Формат(ТаблицаБазы.fields("orderid").
    > Value,"ЧГ=") + ",";

    И как надо написать правильнее?
  • Tepex © (06.11.08 11:28) [25]
    [23] Извени перепутал конечно это чушь. Просто сейчас под рукой нет Делфи
  • sniknik © (06.11.08 11:30) [26]
    > И как надо написать правильнее?
    смотря для чего/что делается, если нужна именно строка то память обычно правильно выделять под неё полностью, и куски "вкопировать"  на места. а то что есть будет черезчур часто перераспределять память под строку. что и приведет к тормозам, если же строка превысит какой то объем (теоретически 2гига но практически меньше) то к нехватке памяти и/или глюку.
  • sniknik © (06.11.08 11:34) [27]
    > Извени перепутал конечно это чушь.
    тогда вопрос... а что именно мы тут обсуждаем? если приведённый код не рабочий, приведён "по памяти" и является чушью... как именно ты хочешь найти ошибку.

    это все одно что для ремонта одного авто в авто мастерскую пригнать другое, но говорить все таки про первое (и главное ожидать, что отремонтируют именно его)...
  • Tepex © (06.11.08 11:40) [28]
    код привден верно работало даже с этой строкой, хотя она не правильная, спасибо за то что указал. Писал код не я, есть проблема с зависанием и мне ее к сожалению приходится решать.
  • sniknik © (06.11.08 11:46) [29]
    ну так, если там допущена такая ошибка... то нужно пересматривать весь код, очевидно писалось без  понимания процесса.
  • Tepex © (06.11.08 11:53) [30]
    [29] Пересматривал код весь процесс проходит нормально, а вот в куске который я написал происходит зависание системы. может проблема в настройке самой СУБД? Или программа написанная на Делфи блокирует таблицы в чем проблема может быть?
  • Сергей М. © (06.11.08 11:54) [31]

    > Tepex ©   (06.11.08 11:40) [28]


    А что мешает отказаться от доступа к базе через ADO непосредственно в обработке в пользу доступа через дельфийские компоненты прямого доступа в 1С-надстройке ?
  • Сергей М. © (06.11.08 12:07) [32]
  • sniknik © (06.11.08 12:08) [33]
    > Пересматривал код весь процесс проходит нормально, а вот в куске который я написал происходит зависание системы.
    ну да...

    st:=  StringList.Text;
    вот кусок в котором процесс (передача текста в переменную) проходит нормально.

    после гденибудь в другом месте делаем StringList.Free, тоже что характерно совершенно нормально.

    потом пытаемся выполнить первый "нормальный" кусок второй раз...
  • sniknik © (06.11.08 12:10) [34]
    > http://delphi-faq.zoxt.net/363.htm
    это немного не то, это к к рекордсету... лучше обратиться к документации.
  • Сергей М. © (06.11.08 12:31) [35]

    > не то, это к к рекордсету


    Судя по авторскому


    > обращаешься к записи чтобы ее считать и приложение зависает


    проблемы как раз при работе с НД
  • Tepex © (06.11.08 13:59) [36]
    [35] Извените конечно но что значит НД?
  • Сергей М. © (06.11.08 14:06) [37]
    НД = Набор Данных
  • Tepex © (06.11.08 14:12) [38]
    Ну так где копать надо начинать Уважаемые?
  • Сергей М. © (06.11.08 14:36) [39]
    [32] проштудировал ?
 
Конференция "Базы" » приложение зависает при обращении к Firebird. что делать помогите [D7, IB6.x]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]