![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Запрос к акс:
Код:
ADOQuery1.Active:= False;
adoquery1.sql.Add('select *');
adoquery1.SQL.add('COUNT from tank');
adoquery1.SQL.add('order by ID ');
adoquery1.Active:= true;Если нет, то суть запроса такова: Посчитать кол-во строчек в столбике ID. Я хочу это знач[ение, что он посчитает, присвоить переменной n, но Код:
var n: integer; begin n:= adoquery1; не помогает... как это возможно сделать? Последний раз редактировалось ctpaxm, 15.08.2011 в 00:19. |
|
#2
|
||||
|
||||
|
Код:
Dataser.Fields['Field'].AsInteger |
|
#3
|
||||
|
||||
|
Что то вы меня запутали своим постом. Что значит
Цитата:
![]() Посчитать количество строчек где ID не null? Тогда надо Код:
select COUNT(ID) as CountField from tank Затем по всей видимости Код:
ADOQuery1.ExecSQL;
n:=ADOQuery1.FieldByName('CountField').AsInteger;Последний раз редактировалось Viajero, 15.08.2011 в 12:25. |
|
#4
|
|||
|
|||
|
Благодарю, но теперь появилась новая проблема... При нажатие определённой кнопки, мне надо сменить таблицу на другую...
допустим с Tank на Air... как это сделать? |
|
#5
|
||||
|
||||
|
МОжно через Format(...)
|
|
#6
|
||||
|
||||
|
Цитата:
А в чём проблема. В событии кнопки просто поменять запрос. |
|
#7
|
|||
|
|||
|
объясню по другому...
При нажатие на кнопку button3 у меня происходит следующее: Код:
adotable1.Active:=false; ADOTable1.TableName:='Air'; adotable1.Active:=true; Код:
procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
var
n: integer;
begin
ADOQuery1.Active:= False;
adoquery1.sql.Add('select ');
adoquery1.SQL.add('COUNT(ID) as CountField');
adoquery1.SQL.add('from Tank');
adoquery1.Active:= true;
ADOQuery1.ExecSQL;
n:=ADOQuery1.FieldByName('CountField').AsInteger;Код:
adoquery1.SQL.add('from Tank');Код:
adoquery1.SQL.add('from Air'); |
|
#8
|
||||
|
||||
|
Так я и не понял, что вы хотите сделать. adotable1 и adoquery1 - разные компоненты и разные датасеты, запросы в adoquery1 никаким боком не касаются adotable1.
|
|
#9
|
|||
|
|||
|
извеняюсь, как я понял - ошибка не в этом, а в чём то другом...
Но мне надо что бы скуль запрос изменялся при определённых действиях... Как это сделать? тоесть изменения произвести в этом запросе... Код:
procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
var
n: integer;
begin
ADOQuery1.Active:= False;
adoquery1.sql.Add('select ');
adoquery1.SQL.add('COUNT(ID) as CountField');
adoquery1.SQL.add('from Tank');
adoquery1.Active:= true;
ADOQuery1.ExecSQL;
n:=ADOQuery1.FieldByName('CountField').AsInteger;У меня есть определённое действие: Код:
procedure TForm1.Button3Click(Sender: TObject); begin adotable1.Active:=false; ADOTable1.TableName:='Air'; adotable1.Active:=true; Как сделать так, что бы при смене таблицы, менялся и запрос, при этом не переписывая запрос в другое действие Последний раз редактировалось ctpaxm, 16.08.2011 в 15:17. |
|
#10
|
||||
|
||||
|
IMHO это проще простого:
Код:
adoquery1.SQL.add('from ' + ADOTable1.TableName);Код:
adoquery1.SQL.add('from Tank');Последний раз редактировалось Viajero, 16.08.2011 в 16:11. |
|
#11
|
|||
|
|||
|
Благодарю, просто я язык скуля не знаю вообще, а делфи ток немного
![]() |
|
#12
|
|||
|
|||
|
спасибо, работает, но потом после смены имени таблицы выдаёт ошибку "Ошибка синтаксиса в предложении FROM" ...а потом после пропуска одного одного шага - таблица, которая нужна, отображается в Делфи
|
|
#13
|
||||
|
||||
|
Ну дык тестируй. Что у тебя итоге SQL выражение, может где пробелы пропущены.
Showmessage(ADOQuery1.SQL.Text) в зубы. Можно ещё тестовыми переменными и брейкпойнтами выяснить, или с такими тоже не знаком. |
|
#14
|
|||
|
|||
|
если честно, то не знаком...
Код:
ADOQuery1.Active:= False;
adoquery1.sql.Add('select');
adoquery1.SQL.add('COUNT(ID) as CountField');
adoquery1.SQL.add('from ' + ADOTable1.TableName);
adoquery1.Active:= true;
ADOQuery1.ExecSQL;
n:=ADOQuery1.FieldByName('CountField').AsInteger;
showmessage(Inttostr(n));![]() |