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

Вниз

Oracle: Получение значений из запроса...   Найти похожие ветки 

 
a_andru   (2003-08-24 19:44) [0]

Подскажите, Как из переменной типа TOracleDataSet и метода GetVariable получить значение из результата запроса. Заранее спасибо.


 
Sergey13 ©   (2003-08-25 09:50) [1]

А что за запрос? И какое значение ты бы хотел получить этим методом?


 
Vlad ©   (2003-08-25 10:34) [2]

Значение из результата SQL запроса методом GetVariable получить нельзя.
OracleDataSet.FindField("Нужное поле").AsString ..... например.


 
Sergey13 ©   (2003-08-25 10:53) [3]

2Vlad © (25.08.03 10:34) [2]
Не совсем так. Из запроса типа

INSERT INTO Table_name(F1, F2, Fn)
VALUES (:F1, :F2, :Fn)
RETURNING ID INTO :id

можно вернуть ID и именно этим методом.
Но что то мне подсказывает, что автор не о том спрашивал. Поэтому и хотел уточнить.


 
Vlad ©   (2003-08-25 11:02) [4]

Возможно так оно и есть, просто речь-то вроде шла о запросе в TOracleDataSet, а тут - как минимум Begin - блок получается


 
Sergey13 ©   (2003-08-25 11:17) [5]

2Vlad © (25.08.03 11:02) [4]
Про TOracleDataSet я действительно прошляпил. 8-)


 
a_andru   (2003-08-27 19:12) [6]

Я тут сам поковырялся . Решил пока упростить себе задачу...
Если знаю колонки таблиц решил получать данные по индексу.
Сейчас проблема с другим. В запросе получаю кучу строк а в цикле пробегаю только по одной строке и выхожу из цикла. Немогу понять почему. Может подскажете...
Код:
while true do // бегаю по циклу без проблем

while not OracleQuery.Eof do // а тут проблем...
Begin
ShowMessage(inttoStr(OracleQuery.RowCount));
Var1:=OracleQuery.Field(0);
Var2:=OracleQuery.Field(1);
Var3:=OracleQuery.Field(2);
Var4:=1234567892453;
Var5:=OracleQuery.Field(4);

Discount.OracleQuery.Next;
End;


 
Rol   (2003-08-28 06:17) [7]

запрос?


 
Danilka ©   (2003-08-28 07:59) [8]

[6] a_andru (27.08.03 19:12)
а ты уверен что по одной?
судя по названию, RowCount возвращает не номер записи, а их количество.


 
Vlad ©   (2003-08-28 10:34) [9]

Так ктож для этого TOracleQuery то использует ?
Если хошь получить нормальный набор данных, используй TOracleDataSet.
И еще. Перед циклом неплохо бы First писать...так, на всякий случай :)


 
Sergey13 ©   (2003-08-28 11:02) [10]

2a_andru (27.08.03 19:12) [6]
Че то я не понял твоего кода. Особенно
>while true do // бегаю по циклу без проблем

Что ты этим достичь то хочешь?


 
Danilka ©   (2003-08-28 11:11) [11]

Sergey13 © (28.08.03 11:02)
я так понял, что он выяснил что бегает по одной и той-же записи с помощью вот-этого:
ShowMessage(inttoStr(OracleQuery.RowCount));
думая, что таким образом возвращает номер записи.
но, конечно, лучше-бы автор сам сказа чего он хотел.


 
Vlad ©   (2003-08-28 11:18) [12]

2 Danilka © (28.08.03 11:11) [11]
Наврядли по одной, ведь он Next делает.
А вот RowCount....
RowCount will return 1 if any records are fetched or will return 0 if no records are fetched.
Как-то на номер записи не оч. похоже :)


 
Danilka ©   (2003-08-28 11:26) [13]

Vlad © (28.08.03 11:18)
Знаю, но как еще его понять:
В запросе получаю кучу строк а в цикле пробегаю только по одной строке и выхожу из цикла
вероятно, он решил, что "пробегает" по строке с номером RowCount, иначе показывать его в мессаге вообще безсмысленно.


 
a_andru   (2003-08-28 18:19) [14]

Я извеняюсь что отсутствовал....
У меня тут была одно грубейшея ошибка... я из одного OracleQuery одновременно и читал и писал в таблицу. Соответсвенно в запросе получаю кучу строк, а потом после встаке первой строки в таблицу у меня там остается одна запись. соответственно я выхожу из цикла так как достигнут "конец"


 
a_andru   (2003-08-28 18:27) [15]

Непонятно одно как определитькакую компоненту использовать в каких случаях TOracleQuerн или TOracleDataSet? У них сходные свойства и функции только разное возвращают...


 
Vlad ©   (2003-08-28 18:34) [16]

Для получение набора данных с сервера (другими словами SELECT***) лучше использовать TOracleDataSet
А для выполнения изменений (INSERT, DELETE, UPDATE) естественно удобнее пользоваться TOracleQuery.
Можно и наоборот, но это тоже самое что макароны есть ложкой, а суп - вилкой.


 
a_andru   (2003-08-30 12:40) [17]

2 VLAD
Спасибо за совет..
Буду продолжать обучение :)



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
4-72011
Marat VG
2003-07-21 12:23
2003.09.22
CopyFile


7-71976
Ionv
2003-07-04 07:42
2003.09.22
Как работать с АЦП(портами) в WinXP?


1-71697
Fortuna
2003-09-11 06:59
2003.09.22
Работа программы с оперативки


1-71580
Jao
2003-09-09 17:37
2003.09.22
в 7-ой дельфе исчезли компоненты шифрования md2-md5


1-71631
Vitalygavrilov
2003-09-09 06:52
2003.09.22
Помогите решите несложный вопрос о Combobox