![]() |
|
|
Регистрация | << Правила форума >> | 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 — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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(...)
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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)); ![]() |