Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

Ещё вопрос   Найти похожие ветки 

 
Loco ©   (2002-07-19 14:49) [0]

Подскажите кто-нибудь, кто сталкивался, ещё такую штуку:
после выполнения нескольких SQL - запросов прграмма отказывается запускаться, порождается исключение типа EDBEngine.
Вобщем оно говорит, что ему памяти не хватает!
Как я понимаю, после каждого запроса стек чистить надо??? или чего???? И как это сделать, может кто сталкивался?

Спасибо заранее.


Loco: loco@userline.ru


 
kalliopiy ©   (2002-07-19 15:00) [1]

Раз уж я начал с тобой общаться, так надо до конца!

Все зависит от того как ты используешь TQuery. Ты ее динамически не создаешь, ну т.е. что-то типа Q1:=TQuery.Create(self)?. Или она у тебя в DesignTime заготавливается?

А лучше кусок твоего кода написать.


 
Loco ©   (2002-07-19 15:19) [2]

2kalliopiy ©
Спасибо за помощь, всё равно здесь, похоже, больше никто не желает со мной общаться. :))

А Query заготавливается DesignTime, но св-ва у него определяются динамически, (ну кроме Alias"а)


 
kalliopiy ©   (2002-07-19 15:23) [3]


> но св-ва у него определяются динамически

А что за свойства? SQL что-ли? Или что-то еще?
Если фильтруешь ее, не забывай потом фильтры снимать и т.п.

Короче, расскажи поподробнее что ты там творишь.


 
Loco ©   (2002-07-19 15:27) [4]

2kalliopiy ©
Ну пример:
if RadioButton2.Checked then
begin
strSum:=10000;
with DM.Query1 do begin
Close; // закрыть файл-результат выполнения предыдущего запроса
SQL.Clear; // удалить текст предыдущего запроса
// записываем новый запрос в свойство SQL
SQL.Add("SELECT *");
SQL.Add("FROM "person.db; slug_inf.db"");
SQL.Add("WHERE");
SQL.Add("(CreditSum >= " +inttostr(strSum)+ ")");
SQL.Add("ORDER BY Code");
Open; // активизируем выполнение запроса
end;
if DM.Query1.RecordCount <> 0 then
DM.DSslug_inf.DataSet:=DM.Query1 // отобразить рез-т выполнения запроса
else begin
ShowMessage("В базе данных нет записей, удовлетворяющих критерию запроса.");
DM.DSperson.DataSet:=DM.person;
end;
end;


 
Val ©   (2002-07-19 15:36) [5]

а зачем в from указано две таблицы, если выборка из одной и никаких связей между ними не установлено?


 
Loco ©   (2002-07-19 15:41) [6]

2Val ©
А вот кстати, только что это дописал, связи между ними есть, а при выполнении возникает исключение: мне пытаются доказать, что эти таблицы не созданы, а почему?????


 
kalliopiy ©   (2002-07-19 15:42) [7]

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


 
Loco ©   (2002-07-19 15:45) [8]

2kalliopiy ©
закрывать перед закрытием
Прикольно :)))))))))))))
т.е. по FormClose выполнять Query.Close ??????


 
kalliopiy ©   (2002-07-19 15:53) [9]

У тебя просто плохой запрос. Такой запрос дает, строго говоря, декартово произведение двух таблиц (не стоило тебя этим мучать), которое в памяти может и становится невыносимо большим. Какая цель твоей выборки (словами, плз)?


 
Val ©   (2002-07-19 15:59) [10]

>Loco © (19.07.02 15:41)
связи между ними в запросе нет - не связываете вы их никак, у вас по условию запрос является только горизонтальным срезом одной таблицы.
насчет исключения- это естественно, поскольку синтаксис нарушен:
..
FROM "person.db", "slug_inf.db"
..


 
Loco ©   (2002-07-19 16:16) [11]

2kalliopiy ©
По поводу таблиц - это нововведение у меня, которое кстати не работает, а про память, это он мне и с одной таблицей говорил


 
Loco ©   (2002-07-19 16:22) [12]

2Val ©
Можно на "ты", а как связать их запросом????
Person - master table, Slug_inf - соответственно - slave,
выбираем из второй, а DBGrid, связанный с первой должен показывать только те записи, которые удовлетворяют условию
(у-у-фф), достаточно запутанно??? :))) Вот сижу и бьюсь над этим уже час


 
Val ©   (2002-07-19 16:35) [13]

для начала неплохо хотя бы почитать чего по SQL :)
дайте структуру таблиц и что хотите из них получить.


 
Loco ©   (2002-07-19 16:56) [14]

2Val ©
Ну не силён в SQL :))))
А всё таки обращайтесь ко мне на "ты"
Таблицы шлю на мыло, а получить надо значения всех полей главной таблицы, ..... блин, 5 минут думал как сформулировать, нифига не могу, понимаю, а чтобы объяснить...... ну никак.
Короче, связь таблиц должна быть как бы снизу вверх,.... ну от подчинённой(в которой делается выборка), к главной


 
Val ©   (2002-07-19 17:01) [15]

ок, в мыло, так в мыло :)



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

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
3-23886
Rustik
2002-07-17 11:05
2002.08.08
Проблема с обновлением данных в гриде при вставке новых строк


1-24035
eruc
2002-07-25 17:37
2002.08.08
Как создать <?xml version=


3-23888
BJValentine
2002-07-17 14:14
2002.08.08
Connection TimeOut


3-23952
Vic-K
2002-07-19 09:39
2002.08.08
Between


1-24048
Tatan
2002-07-25 18:18
2002.08.08
B-дерево