Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

что-то не могу обратится к полю...беда...что-то не так?   Найти похожие ветки 

 
Nikolai ©   (2003-10-03 10:52) [0]

Внизу не хитрый код. На 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;


 
Johnmen ©   (2003-10-03 11:05) [1]

1. Компилятор выкидывает переменную iM как неиспользуемую.
2. Возможно, правильнее писать SELECT * FROM myproc


 
MsGuns ©   (2003-10-03 11:35) [2]

А зачем Close для только что созданного и, след-но, не открытого TQuery ? Хотя на ошибку это не влияет, конечно ;)


 
Rem ©   (2003-10-03 11:51) [3]

1. Какая область видимости переменной iM?
2. Для чего она потом используется?


 
Nikolai ©   (2003-10-03 14:57) [4]

iM - локальная, висит на кнопке, это максимальное значение поля


 
ЮЮ ©   (2003-10-04 04:21) [5]

>iM - локальная, висит на кнопке

Это как? Вот и повесь:
iM := FieldByName("myfield").asInteger;
Button.tag := iM;
Button.Caption := IntToStr( iM);

Иначе см.[1]:


 
Bhagavad   (2003-10-04 18:44) [6]

execute - ничего не возвращает.
select myfield from <имя процедуры>(<параметры>)


 
sniknik ©   (2003-10-04 19:02) [7]

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]
скорее всего дело именно в оптимизаторе.



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
14-74392
Yakudza
2003-09-25 14:09
2003.10.23
Прикол


3-73999
Митяй
2003-10-02 20:29
2003.10.23
---|Ветка была без названия|---


8-74327
nuflin
2003-06-20 13:12
2003.10.23
графика и память


14-74471
Труп Васи Доброго
2003-10-03 08:18
2003.10.23
Раабота с OfficeXP в WinXP


1-74322
heady
2003-10-11 21:10
2003.10.23
аналог DosError в Delphi