Вопрос № 60836: Здраствуйте уважаемые эксперты.
Помогите пожалуйста с проблемой.
Есть SQL-запрос : SELECT SUM(summa_vsego) FROM zakaz.
Так вот как поместить результат этого запроса в переменную real_var:real; ?
И ещё вопрос, как вычисляемые поля расп...Вопрос № 60883: Подскажите, по какой причине создание хранимой процедуры из Делфи с использованием IBQuery вызывает ошибку InterBase сервера: token unknown - line ...
?
хотя в IBConsol аналогичный SQL выполняется без проблем, с чем это может быть связан...
Вопрос № 60.836
Здраствуйте уважаемые эксперты.
Помогите пожалуйста с проблемой.
Есть SQL-запрос : SELECT SUM(summa_vsego) FROM zakaz.
Так вот как поместить результат этого запроса в переменную real_var:real; ?
И ещё вопрос, как вычисляемые поля распечатывать?
не печатуются, хоть убей, другие компоненты не предлагать.
Спасибо, заранее!
Поместить можно попробовать примерно так
Real_var:=Query1.FieldByName('FNAME').AsFloat;
а с полем попробуй такую фишку
SELECT SUM(summa_vsego) as Summ FROM zakaz
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 01.11.2006, 07:17
Отвечает: Маренич Владимир
Здравствуйте, newinfo2005!
1.
Query1.SQL.Text:=' SELECT SUM(summa_vsego) FROM zakaz';
Query1.Open;
Real_var:=Query1.Fields[0].AsFloat;
Query1.Close;
2. Проверьте AutoCalcFields=true в наборе данных (Table1 или как там его Вы назвали)
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 01.11.2006, 14:15
Вопрос № 60.883
Подскажите, по какой причине создание хранимой процедуры из Делфи с использованием IBQuery вызывает ошибку InterBase сервера: token unknown - line ...
?
хотя в IBConsol аналогичный SQL выполняется без проблем, с чем это может быть связанно? Заранее спасибо.
Отправлен: 01.11.2006, 11:20
Вопрос задал: Kotsa (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Архангельский Андрей Германович
Здравствуйте, Kotsa!
А приложить пример не догадался?
Если ты IBQuery открываешь методом .open, то будет такая ошибка. Нужен метод .exeSQL
2) Она тебе пишет "Цель неизвестна - строка ..." - посмотри в этой строке что ей нужно
--------- Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Смотрите по символам, например, чтобы в запросе была кавычка то в делфе нужно писать в тексте запроса две кавычки !!!
Проще всего посмотреть, что почем это использовать TClipBoard;
перед выполнением SQL скрипта создания процедуры выполните следующий код
uses Clipbrd;
...
var cb:Tclipboard;
...
cb:=TClipBoard.Create;
cb.asText:=Query1.SQL.Text;
showmessagee(' '); //просто для паузы выполнения.
всавляеш в IBConsole из клипборда смотриш внимательно и пытаешся откампелить.
если не получиться выложи текст запроса по созданию процедуры в онлайн, посмотрим
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 3-ий класс)
Ответ отправлен: 01.11.2006, 12:00 Оценка за ответ: 5
Отвечает: Маренич Владимир
Здравствуйте, Kotsa!
В синтаксисе описания хранимой процедуры используетяс чимвол ";" (точка с запятой) для разделения команд. В тоже время в IBConsole этот символ используется для разделения отдельных SQL-команд/запросов. Поэтому в IBConsole добавили еще SET TERM для задания нового разделителя. Поэтому, если у Вас в IBQuery.SQL есть SET TERM, то Interbase его конечно не понимает. Просто используйте сиснтаксис создания процедуры с ";" без всяких SET TERM
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 01.11.2006, 14:25
Отвечает: Viktor_sh
Здравствуйте, Kotsa!
Вы не указали текст создания хранимой процедуры, поэтому понять что у вас неправильно сложно, приведите отрывок из текста.
Ответ отправил: Viktor_sh (статус: 1-ый класс)
Ответ отправлен: 01.11.2006, 18:30