Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi + BDE + TQuary [D6, Paradox]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо