![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
что-то не могу обратится к полю...беда...что-то не так? [D6, MSSQL]
Nikolai © (2003-10-03 10:52:00)
Внизу не хитрый код. На MS SQL 7 есть процедура, которая возвращает в Delphi6 курсор с одной записью. Если подключить визуальный компонент - все видно, все хорошо. А вот без него обратиться к полю "myfield" не выходит. Компилятор предупреждает, что значение переменной, после попытки присвоить ей значение поля "myfield", не доступно, хотя явных ошибок он не находит. Что-то не так написал? Прошу помощи.
cSQL := "execute myproc";
qSel := TQuery.Create(nil);
try
with qSel do begin
DatabaseName := "DB";
Close;
SQL.Clear;
SQL.Add(cSQL);
Open;
iM := FieldByName("myfield").asInteger;
Close;
Free;
end;
except
on E: Exception do begin
ShowMessage(E.Message);
qSel.Free;
end;
end;
sniknik (2003-10-04 19:02:00) [1]Johnmen © (03.10.03 11:05) [1]
> 2. Возможно, правильнее писать SELECT * FROM myproc
Bhagavad (04.10.03 18:44) [6]
> execute - ничего не возвращает.
> select myfield from ()
да не все правильно для MSSQL все возвращает (если внутри процедуры конечно есь select) можно даже exec опустить все правильно будет, это вы начерное с IB путаете, там к процедуре без параметров как в View можно обращатся через селект в MSSQL такое обращение наоборот даст ошибку.
Nikolai © (03.10.03 10:52)
см. Johnmen © (03.10.03 11:05) [1] пункт 1.
& ЮЮ © (04.10.03 04:21) [5]
скорее всего дело именно в оптимизаторе.
Bhagavad (2003-10-04 18:44:00) [2]
execute - ничего не возвращает.
select myfield from <имя процедуры>(<параметры>)
ЮЮ (2003-10-04 04:21:00) [3]
>iM - локальная, висит на кнопке
Это как? Вот и повесь:
iM :=FieldByName("myfield").asInteger;
Button.tag := iM;
Button.Caption :=IntToStr( iM);
Иначе см.[1]:
Nikolai (2003-10-03 14:57:00) [4]
iM - локальная, висит на кнопке, это максимальное значение поля
Rem (2003-10-03 11:51:00) [5]
1. Какая область видимости переменной iM?
2. Для чего она потом используется?
MsGuns (2003-10-03 11:35:00) [6]
А зачем Close для только что созданного и, след-но, не открытого TQuery ? Хотя на ошибку это не влияет, конечно ;)
Johnmen (2003-10-03 11:05:00) [7]
1. Компилятор выкидывает переменную iM как неиспользуемую.
2. Возможно, правильнее писать SELECT * FROM myproc