Вопрос по ошибке Оракл

Рустем Анваров
Дата: 20.11.2007 13:46:37
Я написал такой текст в Дельфи
with Form1.ODS1 do
begin
Active:=false;
SQL.Clear;
SQL.Add('select count(*) as line from rep_file');
SQL.Add('where to_char(d_report,''dd.mm.yyyy'')='''+d_report+'''');
SQL.Add('and id_form=3232');
Active:=true;
rep_file:=FieldByName('line').AsInteger;
Close;
end;

И при открытии запроса Оракл выходит ошибка
Ora 01036 Неверная имя или номер переменной

Что может приводить ошибка, притом что он только иногда выводит эту ошибку.
SQL*Plus
Дата: 20.11.2007 13:49:23
ORA-01036: illegal variable name/number
Cause: Unable to find bind context on user side
Action: Make sure that the variable being bound is in the sql statement.
Batsall
Дата: 20.11.2007 13:58:07
Рустем Анваров
Я написал такой текст в Дельфи
with Form1.ODS1 do
begin
Active:=false;
SQL.Clear;
SQL.Add('select count(*) as line from rep_file');
SQL.Add('where to_char(d_report,''dd.mm.yyyy'')='''+d_report+'''');
SQL.Add('and id_form=3232');
Active:=true;
rep_file:=FieldByName('line').AsInteger;
Close;
end;

И при открытии запроса Оракл выходит ошибка
Ora 01036 Неверная имя или номер переменной

Что может приводить ошибка, притом что он только иногда выводит эту ошибку.


Останоновитесь на строке Active:=true; и посмотрите что у Вас получается в SQL.Text. Попробуйте выполнить через какой- нибудь SQL*Plus. Увидите в чем ошибка. И воообще, где параметризация запроса? Какой тип поля d_report?
Рустем Анваров
Дата: 20.11.2007 13:59:17
Это компонент OracleDataSet, я выполняю запрос и вытаскиваю значение запрос, тип у d_report Дата
Сишник
Дата: 20.11.2007 14:07:55
Рустем Анваров
...тип у d_report Дата

Такого типа не существует.
Правду будем говорить?
Рустем Анваров
Дата: 20.11.2007 14:10:25
Сишник
Рустем Анваров
...тип у d_report Дата

Такого типа не существует.
Правду будем говорить?


Что ты не можешь догадаться что это тип "Date"?
Сишник
Дата: 20.11.2007 14:18:41
Рустем Анваров

Что ты не можешь догадаться что это тип "Date"?

И такого типа не существует.
И вообще, с какой стати я должен гадать? Что за неуважение к отвечающим?
Batsall
Дата: 20.11.2007 14:19:14
Рустем Анваров
Сишник
Рустем Анваров
...тип у d_report Дата

Такого типа не существует.
Правду будем говорить?


Что ты не можешь догадаться что это тип "Date"?


Скиньте сюда то, что получается в SQL.Text
Batsall
Дата: 20.11.2007 14:20:51
Сишник
Рустем Анваров

Что ты не можешь догадаться что это тип "Date"?

И такого типа не существует.
И вообще, с какой стати я должен гадать? Что за неуважение к отвечающим?


Не кипятись, он про оракловое поле, с таким же именем. Посмотри внимательно в запрос.

А вот какой тип переменной d_report в делфе?
SQLap
Дата: 20.11.2007 14:28:12
Рустем Анваров
Это компонент OracleDataSet, я выполняю запрос и вытаскиваю значение запрос, тип у d_report Дата


Там вроде проперть Debug должно быть. Надо его в true, и перед выполнением текст запроса в окне появится. Его в каком нибудь нагибаторе попробуйте выполнить