Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.013 c
1-71687
pashtet
2003-09-10 10:39
2003.09.22
Как защитить свой продукт от пиратства?


3-71545
AlexWeb
2003-08-27 13:11
2003.09.22
Как обновить данные в TIBQuery или TIBDataSet?


1-71706
qwerty2
2003-09-10 17:55
2003.09.22
Некорректный импорт библиотеки типов


4-72000
Shift
2003-07-20 13:25
2003.09.22
неработают HotKey


14-71840
Danilka
2003-08-29 15:47
2003.09.22
Проверим степень вашей испорченности





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский