Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Вниз

помогите, пожалуйста, разобраться...   Найти похожие ветки 

 
alienka   (2003-11-24 16:20) [0]

...почему виснет программа?
Начну по порядку: данные беруться из текстового файла, упорядочиваются и заносятся в массивы, дальше их нужно также упорядоченно добавить в базу. Вот на этом этапе приложение и виснет :(
Причем не сразу, а после примерно 300 занесенных в базу записей.
Ошибка "access violation..." и т.д. Массивы при этом полнехоньки и данные там сидят корректные.
Использую для доступа к базе ado компоненты (добавляю adoQuery)
Подскажите, что сделать, как добавить корректно данные? Массивы большие...


 
chtr   (2003-11-24 16:23) [1]

А может попробовать напрямую, без массивов?


 
alienka   (2003-11-24 16:24) [2]

Не получится, по моему, данные слишком разбросаны по файлу. Массив их вроде как упорядочивал, подготавливал для помещения в базу. Да и массив то без проблем создается... Может дело в некорректности именно занесения в базу? Может код сюда бросить?


 
VAleksey   (2003-11-24 17:08) [3]


> Может код сюда бросить?

ага...


 
alienka   (2003-11-24 17:33) [4]

это добавление из массива в базу

for i:=0 to n-1 do
begin
for t:=0 to nn-1 do
begin
qtest.SQL.Clear;
qtest.SQL.add("insert into calls(dattim, nubm, usl, dlit, st, napr, temp) values");
qtest.SQL.add(" (""" + m[i].a3[t,0] + """, """+m[i].a3[t,1]+""", """+m[i].a3[t,2]+""", """+m[i].a3[t,3]+""", """+m[i].a3[t,4]+""", """+m[i].a3[t,5]+""", """ + m[i].a1 + """)");
qtest.ExecSQL;
end;


не знаю понятно получилось или нет...
Но выглядит примерно так. Весь код глупо писать (сюда по крайней мере) - он цапает элементы массива из абсолютно разных кусков файла...
Ну и если не понятно привела пример, скажите, поправлюсь.


 
Val   (2003-11-24 17:52) [5]

>alienka (24.11.03 17:33) [4]
1)проверьте, верно ли формируется текст запроса
2)используйте параметры вместо конкатенации


 
alienka   (2003-11-24 18:10) [6]

Текст запроса сформировался верный, данные тоже добавляются верно (это видно на примере маленьких массивов). Но почему то на больших массивах вылетает ошибка. И добавляется ровно 500 строк в базу.


 
Val   (2003-11-24 18:19) [7]

>alienka (24.11.03 18:10) [6]
ну так оттрассируйте код и посмотрите на значения индексов и данных массивов во время возникновения ошибки, в чем проблема?
какая субд?


 
alienka   (2003-11-24 18:25) [8]

субд mysql
сейчас попробую оттрасировать, правда есть шанс только к завтрашнему утру закончить все :)


 
Val   (2003-11-24 18:40) [9]

>alienka (24.11.03 18:25) [8]
... правда есть шанс ...

в смысле? поставьте брекпойнт с условием.


 
Michail Dalakov   (2003-11-24 21:07) [10]

Локализуй место где происходит зависание. Если модуль небольшой
и возникают проблемы с Breakpoint, то закоментируй места где программа может зависнуть используя {}.
Советы:
Не рекомендую пользоваться """, потому-что если в элементе массива, встретится символ " то программа вылетит с ошибкой, для того чтобы такого небыло используй AnsiQuotedStr,
массивами следует пользоваться очень осторожно, посмотри реально ли подходит данный тип данных,может лучше воспользоваться вариантом, и наконец для того чтобы
ловить ошибки в SQL предлагаю использовать Profiler, он входит в
стандартную поставку MSSQL



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

Форум: "Базы";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-52331
Виноградов Алексей
2003-10-21 20:42
2003.12.16
Блокирующий tserversocket-не генерятся события отключения клиента


1-52253
Olga_Oo
2003-12-04 14:58
2003.12.16
ComboBox


4-52448
MaXie
2003-10-23 11:13
2003.12.16
Как дождаться завершения приложения?


1-52160
Evil Lis
2003-12-03 14:05
2003.12.16
Несколько CheckBox в ListView


1-52216
Triny
2003-12-05 09:11
2003.12.16
FindDialog





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский