Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c