|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.01.2008, 07:33 | #1 |
Регистрация: 24.01.2008
Сообщений: 5
|
ADO и VFP, помогите выяснить причину
Я работаю через ADO с VFP 7. Все работает прекрасно, но при добавлении 64 записи выходит сообщение "Too many variables" (Слишком много переменных). После перезапуска приложения все снова работает прекрасно до 64 записи.
Тоже самое происходит при перезаписи данных из одной таблицы в другую - 63 записи проходит, на 64 программа выдает ошибку. Подскажите в чем причина ошибки и как ее устранить? Последний раз редактировалось Люся; 24.01.2008 в 09:50. Причина: уточнение |
24.01.2008, 13:24 | #2 |
Форумчанин
Регистрация: 24.10.2007
Сообщений: 254
|
А ты попробуй вставить 63 записи и завершить транзакцию, а потом еще и т.д.
|
25.01.2008, 06:24 | #3 |
Регистрация: 24.01.2008
Сообщений: 5
|
Транзакция завершается после вставки каждой записи:
DM.ADOConnection1.BeginTrans; try DM.Spis_Pass.Append; ... DM.Spis_Pass.Post; except DM.ADOConnection1.RollbackTrans; Exit; end; DM.ADOConnection1.CommitTrans; При этом ошибка все равно возникает. Не пойму причину. При перезапуске приложения все снова работает до 64 записи. |
25.01.2008, 08:38 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
У меня была прога которая вытаскивала в базу VFP более 100000 записей и ничего такого не выдавала.
Чем пользуешся и как добавляешь?
I'm learning to live...
|
28.01.2008, 06:08 | #5 |
Регистрация: 24.01.2008
Сообщений: 5
|
В VFP7.0 используются свободные таблицы. Программа написана на Delphi 7. Доступ через ADO. Добавление описано выше (Spis_Pass - это AdoTable, DM - DataModule).
|
29.01.2008, 05:26 | #6 |
Регистрация: 24.01.2008
Сообщений: 5
|
Причина найдена, но проблема не решена
Прииной является утечка памяти при работе с компонентой AdoTable. Подскажите пожалуйста, как можно освободить память во время работы программы?
|
29.01.2008, 10:30 | #7 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Люся, а Вы попробуйте использовать вместо AdoTable, ADOQuery. Это как вариант.
|
29.01.2008, 11:34 | #8 |
Регистрация: 24.01.2008
Сообщений: 5
|
Спасибо!!! Я так и сделала, правда буквально за пару часов до Вас, фЁдОр, мне эту же идею подсказал Виталий Белик по аське.
Но все равно, СПАСИБО, это очень хорошая идея. PS: SQL действительно надо любить Последний раз редактировалось Люся; 30.01.2008 в 04:56. |