![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi + BDE + TQuary [D6, Paradox]
Klim Samgin © (2003-04-02 10:20:00)Hi, All!
Вопрос ламерский.
Как забрать из TQuery результат запроса
SELECT COUNT(*) FROM MyTable
или любого, не возвращающего набор данных.
stranger71 (2003-04-03 09:32:00) [21]Я давно уже написал себе и пользуюсь такой процедуркой
Function TDM.GetSQLResult(const s:String):Variant;
Begin
With TIBQuery.Create(nil) Do
try
Database:=IB_DB;
SQL.Add(s);
Open;
GetSQLResult:=Fields[0].AsVariant;
Close;
finally
Free;
end;
End;
Stas (2003-04-03 09:12:00) [22]Только нужно параметр настроить на Output, а тип Integer, и в SQL перед после ":PAR" должен быть пробел.
Klim Samgin (2003-04-03 09:09:00) [23]Всем спасибо.
Stas (2003-04-03 09:07:00) [24]SELECT не всегда взвращает набор данных !!!
Короче пиши так
SELECT :PAR=Count(*) From my table
В коде пиши EXECSQL, потом I:=Query1.params[0].asInteger
Anatoly Podgoretsky (2003-04-03 08:58:00) [25]Klim Samgin (02.04.03 10:20)
или любого, не возвращающегонабор данных.
Чего нет, того нет, если не возвращается то выбирать нечего, но к SELECT такое не относится, оно и переводится так ВЫБРАТЬ
ЮЮ (2003-04-03 03:53:00) [26]>Вопрос ламерский.
>Как забрать из TQuery результат запроса
>SELECT COUNT(*) FROM MyTable
>или любого, не возвращающего набор данных.
SELECT всегда возвращает набор данных, даже если нет записей, удовлетворяющих запросу.
Не возвращают НД запросы INSERT, DELETE, UPDATE, CREATE и т.д.
Вот их результаты ты не заберешь, потому и говорят, что они не возвращают НД
Rol (2003-04-02 11:03:00) [27]не ExecSQL, а Open
Соловьев (2003-04-02 11:03:00) [28]
> TmpQuery.ExecSQL;
TmpQuery.Open;
Klim Samgin (2003-04-02 11:00:00) [29]TmpQuery.Close;
TmpQuery.SQL.Clear;
TmpQuery.SQL.Add("Select Count(*) From Object");
TmpQuery.ExecSQL;
AllLabel.Caption := TmpQuery.Fields[0].AsString;
Выскакивает - ... EListError ... "List index out of bounds (0)"
Во втором варианте пишет, что поле не найдено.
Соловьев (2003-04-02 10:55:00) [30]полный код?
Klim Samgin (2003-04-02 10:52:00) [31]А ведь не катят ни тот ни другой способ.
Соловьев (2003-04-02 10:25:00) [32]приучайся указывать имя поля:
> SELECT COUNT(*) as CountRecordFieldFROM MyTable
а в проге обращятся по имени поля:
MyQuery.FieldByName("CountRecordField").AsInteger
Klim Samgin (2003-04-02 10:25:00) [33]Спасибо.
Жук (2003-04-02 10:22:00) [34]
MyQuery.Fields[0].AsInteger