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

Вниз

ADO SQL SUM(Field) - ошибка в IDE Access violation ... 1B041FC6   Найти похожие ветки 

 
azamatufa ©   (2007-06-28 11:06) [0]

Привет мастерам Дельфей!

Разрешите вопрос в студию.
Работю с TADOQuery, база JET (access).
пишу

Query.SQL.Add("SELECT SUM(Num)");    // (*) <----
Query.SQL.Add("FROM Table1");

Жму F9 и в момент (*) вылетает ошибка Access Violation по адресу... in module "msjet40.dll..." - НО прога продолжает работать... не нравится ему, понимаешь, сумма.. =)

А если же запускаю exe-шник без дельфей - ошибок нет..

Может кто сталкивался?

Заранее благодарен!
С/у.


 
Ega23 ©   (2007-06-28 11:14) [1]


> Query.SQL.Add("SELECT SUM(Num)");    // (*) <----
> Query.SQL.Add("FROM Table1");


НД открыт, или нет? Если открыт, то закрой.


 
ЮЮ ©   (2007-06-28 11:17) [2]

> НО прога продолжает работать

А чего бы ей не работать из-за того, что в одном из обработчиков произошла ошибка.


> Может кто сталкивался?

С Access Violation? Да тысячи раз. После исправления ошибок - пропадают :)
P.S. Приведи весь код метода, с заголовком и локальными переменными. В твоих двух строках кода - информации - ноль.


> не нравится ему, понимаешь, сумма

Можно подумать, если будет Query.SQL.Add("SELECT Num"); то AV исчезнет


 
azamatufa ©   (2007-06-28 11:19) [3]


> НД открыт, или нет? Если открыт, то закрой.

закрыта!

вот полная версия

procedure TForm1.Button1Click(Sender: TObject);
begin
 Query.Active := false;     // ну это излишек так то... но поставил..
 Query.Close;
 Query.SQL.Clear;
 Query.SQL.Add("SELECT SUM(One)");
 Query.SQL.Add("FROM Form6");
 Query.Active := true;
 Query.Open;
end;


Query - компонент на форме.


 
azamatufa ©   (2007-06-28 11:22) [4]


> Можно подумать, если будет Query.SQL.Add("SELECT Num");
> то AV исчезнет


имеено так, уважаемый!
только что кнопку 2 сделал:

procedure TForm1.Button2Click(Sender: TObject);
begin
 Query.Active := false;
 Query.Close;
 Query.SQL.Clear;
 Query.SQL.Add("SELECT One");
 Query.SQL.Add("FROM Form6");
 Query.Active := true;
 Query.Open;
end;


- никаких проблем, показал в гриде поле One (все записи).


 
Johnmen ©   (2007-06-28 11:27) [5]

Убей Query и создай заново...


 
ЮЮ ©   (2007-06-28 11:33) [6]

> вот полная версия

Почему-то тут отсутствую строки из укороченной версии :)
Разбором синтаксиса здесь и не пахнет(если над компонентом Query специально не поизгалялся), поэтому что SUM, что не SUM - все равно.
Если ошибка действительно здесь, то или сразу присваитвать SQL.Text

procedure TForm1.Button1Click(Sender: TObject);
begin
 Query.Close;
 Query.SQL.Text :=
   "SELECT SUM(One)" +
   "FROM Form6";
 Query.Open;
end;


или
 Query.SQL.BeginUpdate;
 Query.SQL.Clear;
 Query.SQL.Add("SELECT SUM(One)");
 Query.SQL.Add("FROM Form6");
 Query.SQL.EndUpdate;


 
azamatufa ©   (2007-06-28 11:38) [7]


> Убей Query и создай заново...


так тоже не помогает:

procedure TForm1.Button1Click(Sender: TObject);
var
Q: TADOQuery;
begin
 Q := TADOQuery.Create(nil);
 Q.Connection := DM.DB_Connection;
 Q.Close;
 Q.SQL.Clear;
 Q.SQL.Add("SELECT SUM(Kolvo)");
 Q.SQL.Add("FROM Table1");

 DS.DataSet := Q;      // data source

 Q.Open;
 Q.Free;
end;


ладно, видно у меня че-то не то то ли с АДО до ли Вендами.. то ли Дельфями...  так то работать можно.. но..
спасибо всем за оперативное участие!!!


 
azamatufa ©   (2007-06-28 11:39) [8]


> ЮЮ


пошел пробовать....


 
azamatufa ©   (2007-06-28 11:44) [9]


> Почему-то тут отсутствую строки из укороченной версии :)Разбором
> синтаксиса здесь и не пахнет(если над компонентом Query
> специально не поизгалялся), поэтому что SUM, что не SUM
> - все равно.Если ошибка действительно здесь, то или сразу
> присваитвать SQL.Textprocedure TForm1.Button1Click(Sender:
>  TObject);begin  Query.Close;  Query.SQL.Text :=     "SELECT
> SUM(One)" +    "FROM Form6";  Query.Open;end;или   Query.
> SQL.BeginUpdate;  Query.SQL.Clear;  Query.SQL.Add("SELECT
> SUM(One)");  Query.SQL.Add("FROM Form6");  Query.SQL.EndUpdate;
>


Господи, где ж ты был все это время, родной!!!
Как тебе переслать пару банок пива?? ;)

Слов нет..  я почти год уже... Access Violation уже стал моим другом...
а тут.. красота... вот ведь...

Большое человеческое спасибо!!!


 
ЮЮ ©   (2007-06-28 11:55) [10]

Когда так говорят "Спасибо", наверное "Пожалуйста" просто необходимо :)


 
sniknik ©   (2007-06-28 12:24) [11]

вообще вместо всяких "изгаляний" с BeginUpdate; можно просто запрос в одну строку написать (или как 1 вариант в [6] через Text, (тоже 1 получается)), и все.
ну а лучше бы использовать нормальный ADODataSet, он лишон подобных недостатков. неправильно запрос и не добавишь...


 
Игорь Шевченко ©   (2007-06-28 17:58) [12]

Интересно, это только в ADO такое сделано, что при построчном добавлении текста запроса тут же выполняется его разбор или еще где мудрецы постарались ?


 
Плохиш ©   (2007-06-28 18:28) [13]


> Интересно, это только в ADO такое сделано, что при построчном
> добавлении текста запроса тут же выполняется его разбор

Так критерия-то конца вставки запроса нету...


 
sniknik ©   (2007-06-28 20:12) [14]

> Интересно, это только в ADO такое сделано ...
это не в ADO, это в интерпретации от борланда для их "облегчительнопереходныхсBDE" компонент.
а у "родного" ADO попросту нет возможности вносить запрос частями... соответственно нет и механизма "разруливания" сего действия.


 
sniknik ©   (2007-06-28 20:21) [15]

кстати тут минимум раз в два дня мелькают предупреждения - не пользуйтесь борландовскими "костылями" (ADOTable, ADOQuery, ADOStoredProc) пользуйтесь основными (ADOCommand, ADODataSet)... и хоть бы кто послушал.
наоборот, все больше и больше вопросов именно по "корявым" компонентам, нормальных будто бы и не существует...


 
Игорь Шевченко ©   (2007-06-29 10:45) [16]

Плохиш ©   (28.06.07 18:28) [13]


> Так критерия-то конца вставки запроса нету...


А он и нафиг не сдался


 
azamatufa ©   (2007-06-29 11:43) [17]


> все больше и больше вопросов именно по "корявым" компонентам,
>  нормальных будто бы и не существует...


ну у меня только вот одна проблемка и возникла так то...
я не такой спец, конечно, больше юзер этих компонент, но вроде устраивают ADOQuery, ADOTable..
а почему их не стоит использовать???


 
Anatoly Podgoretsky ©   (2007-06-29 11:56) [18]

> azamatufa  (29.06.2007 11:43:17)  [17]

Потому что костыль.


 
Ega23 ©   (2007-06-29 11:57) [19]


> а почему их не стоит использовать???


А потому, что:


> Слов нет..  я почти год уже... Access Violation уже стал
> моим другом...
> а тут.. красота... вот ведь...



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

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

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1187360648
andreoman
2007-08-17 18:24
2007.11.04
уничтожение формы при ее закрытии


15-1191593116
Черный Шаман
2007-10-05 18:05
2007.11.04
Что лучше широкоформатка 16:9 или классика 4:3(мониторы)


2-1192189179
Tehnik(^____^)
2007-10-12 15:39
2007.11.04
Web Browser компонент


11-1175198781
ElectriC
2007-03-30 00:06
2007.11.04
a-la KeyPreview


15-1190835191
Eraser
2007-09-26 23:33
2007.11.04
Delphi, механизм документирования кода





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