Главная страница
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.029 c
3-74055
noiza
2003-10-03 17:43
2003.10.23
Interbase И


1-74266
dream
2003-10-13 10:14
2003.10.23
Много ли занимают памяти дополнительные формы ?


7-74485
opoloXAI
2003-08-10 13:27
2003.10.23
Как разложить байт по-битно?


14-74446
Soft
2003-10-02 16:05
2003.10.23
Покритикуйте тему аспирантской работы.


3-74093
Kinda
2003-09-30 22:31
2003.10.23
Поиск разрывов в цепи следования.