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

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

Как обработать SQL запрос? [D5, MSSQL, access]


Страницы:   1 2 3

Kinder ©   (2003-10-22 15:47:00) 

Вот я написал

with moduledata.Query do begin
SQL.Text :=
"SELECT fio FROM people WHERE id="+table.SelectedField.Text;
ExecSQL;

Close;
end;

Как теперь взять массив со значениями fio?


sniknik   (2003-10-23 21:44:00) [21]

Fay (22.10.03 19:33) [13]
> апдатесы ставил для D5?

Kinder (22.10.03 19:39) [14]
> Ставил. А причем тут это?

без них именно эта ошибка на нормальных но пустых датасетах. и именно в D5.

Kinder (23.10.03 19:27) [33]
> 2TohaNik

> Что смешного?

перенеси код в
procedure TForm1.Button1Click(Sender: TObject);
лутше не стало?


Kinder   (2003-10-23 19:27:00) [22]

2TohaNik

Что смешного?


Kinder   (2003-10-23 19:17:00) [23]

Vlad

Да нету :)

procedure TForm1.tableCellClick(Column: TColumn);

begin
with moduledata.Query do begin
Close;
SQL.Clear;
SQL.Text :="SELECT * FROM people WHERE id="+table.SelectedField.Text;
Open;
{ if IsEmpty then Showmessage("папа у васи силен в математике");}
First;
while not eof do
begin
ShowMessage(Fields[1].AsString);
next;
end;
Close;
end;

end;


TohaNik   (2003-10-23 19:10:00) [24]

procedure TForm1.tableCellClick(Column: TColumn);
:))


Vlad   (2003-10-23 19:03:00) [25]

Kinder (23.10.03 19:02) [28]
Приведи еще раз код


Kinder   (2003-10-23 19:02:00) [26]

Query.IsEmpty -- false.

Т.е. один раз цикл срабатывает нормально, т.к. в запросе всего одно значение возвращается. А потом реально пусто, но почему цикл идет?


Vlad   (2003-10-23 19:02:00) [27]

Kinder (23.10.03 18:59) [26]
Христа ради, развей мои сомнения.
Напиши строчку после OPen,
if Query.IsEmpty then Showmessage("папа у васи силен в математике");
И скажи нам было это сообщение или нет.


Vlad   (2003-10-23 19:00:00) [28]

>Sandman25 © (23.10.03 18:54) [25]
Вот так вот :)))


Kinder   (2003-10-23 18:59:00) [29]

2 Sandman25

А что такое Before/AfterScroll ?


Sandman25   (2003-10-23 18:54:00) [30]

[24] Vlad © (23.10.03 18:50)

Может, там у него в BeforeScroll вызывается Edit. Тогда именно такая ошибка и будет вылазить.


Vlad   (2003-10-23 18:50:00) [31]

>Sandman25 © (23.10.03 18:46) [23]
А какая разница, если BOF=EOF значит набор данных пуст.
>Kinder (23.10.03 18:39) [22]
Попробуй, что вернет Query.IsEmpty, true или false ? (после Open)


Sandman25   (2003-10-23 18:46:00) [32]

В Before/AfterScroll что-то есть?


Kinder   (2003-10-23 18:39:00) [33]

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

First был вставлен. Всё равно ошибка.


Johnmen   (2003-10-23 09:10:00) [34]

Обучение детей. On-line.
Грустно...


NAlexey   (2003-10-23 08:15:00) [35]

Попробуй перед циклом вставить First:

First;
while not Eof do
begin
ShowMessage(Fields[1].AsString);
Next;
end;


Anatoly Podgoretsky   (2003-10-23 05:13:00) [36]

Что поделаешь, ну нет записей


Kinder   (2003-10-22 23:13:00) [37]

Спасибо :)

Но всё равно ошибка идёт.

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.


MsGuns   (2003-10-22 20:17:00) [38]

Пардон, там в нескольких строчках нет концевиков ";"
Надеюсь, понятно в каких ;)


MsGuns   (2003-10-22 20:15:00) [39]

Оформляй код как для себя, а не для врага (в т.ч. отступы):

procedure ....
begin
Form1.MyListBox.Clear;
with moduledata.Query do
begin
if Active then Close;
SQL.Clear;
SQL.Add("SELECT FIO, NAME");
SQL.Add(" FROM people");
SQL.Add(" WHERE id="+table.SelectedField.Text);
try
Prepare
Open;
except
exit;
end;
if RecordCount=0 then exit;
while not eof do
begin
Form1.MyListBox.Add(FieldByName("FIO").AsString)
// ShowMessage(Fields[1].AsString);
next;
end;
Close;
end;
end;


Vlad   (2003-10-22 19:41:00) [40]

перед open напиши showmessage(sql.text) и убедись что запрос сформировался именно так как ты хочешь.


Страницы:   1 2 3

Наверх

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