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

Вниз

прием записей   Найти похожие ветки 

 
rosl   (2003-10-23 02:33) [0]

Уважаемые мастера!!!
принимаю записи таким образом:
while not Module_baza.Q_in.EOF do
begin
date_in:=Module_baza.Q_in.FieldByName("col001").AsDateTime;
Module_baza.T_baza.Insert;
Module_baza.T_baza.FieldByName("name").AsString:=Module_baza.Q_in.FieldByName("name").AsString;
Module_baza.T_baza.FieldByName("cod").AsString:=Module_baza.Q_in.FieldByName("col010").AsString;
Module_baza.T_baza.FieldByName("inn").AsString:=Module_baza.Q_in.FieldByName("col005").AsString;
Module_baza.T_baza.FieldByName("summa").AsString:=Module_baza.Q_in.FieldByName("col009").AsString;
Module_baza.T_baza.FieldByName("procent").AsString:=Module_baza.Q_in.FieldByName("col009 _ 100 _ percent").AsString;
Module_baza.T_baza.FieldByName("nom_plat").AsString:=Module_baza.Q_in.FieldByName("col004").AsString;
Module_baza.T_baza.FieldByName("cod").AsString:=Module_baza.Q_in.FieldByName("code_inc").AsString;
Module_baza.T_baza.FieldByName("data_plat").AsDateTime:=Module_baza.Q_in.FieldByName("col001").AsDateTime;
Module_baza.T_baza.FieldByName("data_in").AsDateTime:=date_in;
end;
Module_baza.Q_in.Close;
Module_baza.T_baza.Post;
Module_baza.T_baza.FlushBuffers;
но после того как в базе кол-во записей превышаеи 30000, выдаётся сообщение
"c:\baza\baza.dbf read faluire", в чём дело?


 
Evgeny V   (2003-10-23 05:52) [1]

В цикле while not Module_baza.Q_in.EOF do и т.д. искал но не нашел Module_baza.Q_in.Next, как ты по базе то двигаешься, как из цыкла вывалиывешься ? Цикл бесконечный получается, если записи есть.


 
rosl   (2003-10-23 07:54) [2]

нет всё нормально, просто код очень большой (с проверкой дат), цыкл не бесконечный. просто после того как в базе оказывается больше 30000 записей , прога при приёме начинает глючить, хотя принимаю порциями по 13000 записей


 
sniknik   (2003-10-23 08:43) [3]

какое волшебное число 30000 оказывается. ;о)
rosl (23.10.03 07:54) [2]
> нет всё нормально
если нормально то и ошибки не должно быть,
если ошибку выдает то значит чегото да не так, может действительно таблица порушена, та которая baza.dbf, а может даты неправильные записаны не может преобразовать вот и выдает (комонент левый к примеру, и у него все ошибки подымают такое исключений), а может просто места на диске не хватает.
в общем чегото не так, надо искать, а приведенный код нормальный (с дополнением что Next всетаки есть, хотя здесь его нет (не верь глазам своим ;о)), у меня в dBase перекидывается (примерно также) по 130 000 записей одномоментно и ничего не глючит, правда я немного не так пишу
первое данный код перенес бы в дата модуль а тут вызывал только процедуру соответствующую
второе вместо Insert Append (для dBase это одно и тоже но так в самом коде ясно что происходит)
третье FieldByName убрал бы из цикла, перед циклом сделал бы присвоение переменным TField дальше обрашения к ним (быстрее).
четвертое ессли бы пользовался BDE то вообще все убрал и заменил бы на BatchMove.

пятое и самое главное при описании проблемы на форуме (раз уж не смог сам решить), описывал бы ее подробно с указанием компонент способа доступа точного типа файлов (dBase и FoxPro это всетаки не одно и тоже), и какому компоненту какая таблица соответствует...

p.s. по моему уже видел этот же вопрос, давно с неделю назад, похожий или тот же?


 
DenK_vrtz   (2003-10-23 08:59) [4]

sniknik ©, я тоже этот вопрос видел, сам лично про BatchMove говорил :)



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

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

Наверх




Память: 0.46 MB
Время: 0.042 c
1-41476
AndreyA
2003-10-28 14:05
2003.11.13
Минимайз окон


1-41707
SergeyM
2003-11-03 20:04
2003.11.13
Поведение формы


6-41780
SergP
2003-09-16 11:01
2003.11.13
Можно ли как-нить узнать свободен ли данный порт?


3-40974
explorer
2003-10-16 07:11
2003.11.13
Paradox: *.lck


14-41991
Dimedrol
2003-10-11 21:59
2003.11.13
---|Ветка была без названия|---





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский