Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 10:51   #11
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
select *, IIF(score2=0,0,score1/score2) as x ...
Работает! Даже с нулем. Спасибо Аватар. Хотел добавить репутацию, но он ругается "подлюка": Вы уже добавляли репутацию

И вот тот вопрос еще не решен. Я знаю как сделать параметризированный запрос, типа :параметр. В который я могу загнать любое значение. Но вот не знаю, как в моем случае переменную х, которую получаю в запросе, использовать в своем коде.
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 10:59   #12
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Я знаю как сделать параметризированный запрос, типа :параметр.
Цитата:
ну так и пишите как говорите
.....................
eval вне форума Ответить с цитированием
Старый 03.04.2013, 12:20   #13
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
.....................
SQL="... :вх.параметр ..."
Form1.ADOQuery1.Parameters.ParamByN ame('параметр').Value:=переменная;

Какая конструкция должна быть у выходного параметра?
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 12:24   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Какая конструкция должна быть у выходного параметра?
Ни какая....
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 12:26   #15
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

select всегда возвращает набор данных, вых. параметров тут никаких нет
чтобы прочитать конкретное данное надо дойти до нужной строки и взять из нужного поля
eval вне форума Ответить с цитированием
Старый 03.04.2013, 12:54   #16
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Т.е. мне данные брать из DbGrida-а? Через Fields?
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 12:57   #17
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

в гриде данных нет.
из датасета надо брать
eval вне форума Ответить с цитированием
Старый 03.04.2013, 13:03   #18
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
в гриде данных нет.
из датасета надо брать
А все понятно, спасибо еще раз.
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 13:26   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

мне кажется, что Вы и себя и всех запутали..

Цитата:
И вот тот вопрос еще не решен. Я знаю как сделать параметризированный запрос, типа :параметр. В который я могу загнать любое значение. Но вот не знаю, как в моем случае переменную х, которую получаю в запросе, использовать в своем коде.
Вы хотите получить значение поля x из набора данных?!

получить значение x очень просто:
Код:
var 
   MyVaxX : double;
.....

Form1.ADOQuery1.....;
Form1.ADOQuery1.Open; {выполнили открытие датасета == получил набор данных}

if  Form1.ADOQuery1.RecordCount = 0 then
   ShowMessage('x получить нельзя - данных в выборке нет!')
else begin
   if  Form1.ADOQuery1.RecordCount>1 then
      ShowMessage('Данных выбралось много: '+IntToStr(Form1.ADOQuery1.RecordCount)+
              ' строчек. значит, и X столько же! Берём первое значение X! ');
   MyVarX := Form1.ADOQuery1.FieldByName('x').AsFloat;
   ShowMessage('Значение переменной равно : '+FloatToStr(MyVarX));
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2013, 14:59   #20
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
мне кажется, что Вы и себя и всех запутали..



Вы хотите получить значение поля x из набора данных?!

получить значение x очень просто:
Код:
var 
   MyVaxX : double;
.....

Form1.ADOQuery1.....;
Form1.ADOQuery1.Open; {выполнили открытие датасета == получил набор данных}

if  Form1.ADOQuery1.RecordCount = 0 then
   ShowMessage('x получить нельзя - данных в выборке нет!')
else begin
   if  Form1.ADOQuery1.RecordCount>1 then
      ShowMessage('Данных выбралось много: '+IntToStr(Form1.ADOQuery1.RecordCount)+
              ' строчек. значит, и X столько же! Берём первое значение X! ');
   MyVarX := Form1.ADOQuery1.FieldByName('x').AsFloat;
   ShowMessage('Значение переменной равно : '+FloatToStr(MyVarX));
end;
Мне нужно не количество записей, а значение каждой отдельной строки. Например:

Последний раз редактировалось helpkz; 03.04.2013 в 15:18. Причина: Не то!
helpkz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить SQL запрос(запутался совсем) Messir_Leonard SQL, базы данных 2 17.03.2013 15:22
Как составить SQL запрос на удаление записей Dux БД в Delphi 2 19.02.2013 23:36
Не могу составить запрос SeRhy PHP 5 04.04.2011 16:33
Не могу составить запрос bullvinkle SQL, базы данных 2 04.10.2009 22:55
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12