Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Insufficient memory for this operation  (Прочитано 15883 раз)
0 Пользователей и 1 Гость смотрят эту тему.
California
Гость
« : 05-09-2006 04:21 » 

Уважаемые, помогите! Голову сломала, йад пила, не помогает  Скромно так... 
Имеем дело с базами типа Paradox и BDE. Если в BDE прописываю путь к одной базе - нормально работает. Если к другой (а она по структуре такая же, как первая), то при переходе от одной формы на другую выходит ошибка: Недостаточно памяти для выполнения операции. Возможно, что сама база эта содержит больше данных. Но вряд ли на столько, чтобы не воспринимать переход по формам.
Увеличила в BDE sharedmemsize, memsize, minbufsize, maxbufsize - бестолку  Не-а.... Переход осуществляется по клику на чекбокс. Я кликаю, получаю ошибку и меня выбрасывает на строку Form3.Close. Код:

Код:
procedure TForm3.CheckBox2Click(Sender: TObject);
begin
If CheckBox2.Checked = True then
begin
CheckBox1.Enabled:=False;
CheckBox3.Enabled:=False;
CheckBox4.Enabled:=False;
Form5.Query1.SQL.Clear;
Form5.Query1.SQL.Add('Select*');
Form5.Query1.SQL.Add('FROM SC48 LEFT JOIN SC1733 ON SC48.SP1735 = SC1733.ID');
Form5.Query1.SQL.Add('LEFT JOIN RA1320 on SC48.ID = RA1320.SP1322');
Form5.Query1.SQL.Add('Where Upper(RA1320.SP1323) like "%_______'+IdSkl+'" and SC1733.DESCR = "CD"'+
                        'or Upper(RA1320.SP1323) like "%_______'+IdSkl+'" and SC1733.DESCR = "MP3"'+
                        'or Upper(RA1320.SP1323) like "%_______'+IdSkl+'" and SC1733.DESCR = "Аудио"');
Form5.Query1.Open;
mytime:=0;
Form4.Visible:=True;
Form3.Close;
end;
end;
Я чайник  Скромно так.... Проект писала не я. Извините, если непонятно изъясняюсь.
Буду несказанно рада, если вы мне поможете
« Последнее редактирование: 13-12-2007 20:38 от Алексей1153++ » Записан
zubr
Гость
« Ответ #1 : 05-09-2006 04:49 » 

А Form5 к тому времени, как ты к ней обращаешся уже создана?
Записан
California
Гость
« Ответ #2 : 05-09-2006 05:02 » 

да, конечно. Все создано.
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 05-09-2006 09:33 » 

Проверьте вторую базу данных на отсутствие пустых (без единой записи) таблиц.
« Последнее редактирование: 05-09-2006 09:35 от Oldy » Записан

С уважением, Oldy.
California
Гость
« Ответ #4 : 05-09-2006 11:52 » new

Я проверила базу. В одной таблице была пустая строка. Я ее удалила. Ничего не изменилось.
Есть еще какие-нибудь идеи? Плииииз..
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 05-09-2006 16:10 » 

California, помоему SQL-выражение составлено не верно.

Код:
Select*
FROM SC48 LEFT JOIN SC1733 ON SC48.SP1735 = SC1733.ID
LEFT JOIN RA1320 on SC48.ID = RA1320.SP1322
Where Upper(RA1320.SP1323) like "%_______..." and SC1733.DESCR = "CD"
    or Upper(RA1320.SP1323) like "%_______..." and SC1733.DESCR = "MP3"
    or Upper(RA1320.SP1323) like "%_______..." and SC1733.DESCR = "Аудио"
Я очистил от лишнего чтобы было лучше видно.
Для начала - SELECT и * надо разделять пробелом.

Самое главное - выражение после WHERE будет работать так:
(((((условие1 и условие2) или условие3) и условие4) или условие5) и условие6).

Судя по тексту условий правильно должно быть так:
(условие1 и условие) или (условие3 и условие4) или (условие5 и условие6).

Расставь скобки!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
California
Гость
« Ответ #6 : 06-09-2006 05:03 » 

я, конечно, в силу ограниченности своих знаний, не буду спорить. Но полагаю, что раз уж это работает нормально на другой базе, то дело не в запросе.
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 06-09-2006 05:38 » 

Попробуйте замещать файлы второй базы файлами из первой, и данные, и индексы (предварительно сделав резервную копию базы). Если ошибка останется, то виновен код, и его нужно будет представить к рассмотрению, если ошибка уйдет, то виноваты файлы базы данных, и разбираться нужно с ними.
« Последнее редактирование: 06-09-2006 05:40 от Oldy » Записан

С уважением, Oldy.
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #8 : 06-09-2006 05:47 » 

Цитата
Увеличила в BDE sharedmemsize, memsize, minbufsize, maxbufsize - бестолку

и все-таки памяти не хватает
какие параметры вы выставили?

Записан

I Have Nine Lives You Have One Only
THINK!
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 06-09-2006 06:18 » 

И еще вопрос:
Чему нехватает памяти, компилятору для построения проекта или уже готовой программе, для работы с базой данных?
« Последнее редактирование: 14-09-2006 11:47 от Oldy » Записан

С уважением, Oldy.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines