Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Исключение при выполнении параметрического запроса [D6, IB6.x]


Страницы:   1 2

Жук ©   (2003-08-12 09:45:00) 

MyIBSQL.SQL.Add("select firstdayofmonth(:ondate) from rdb$database");
MyIBSQL.ParamByName("ondate").AsDate:=StrToDate(MaskEdit1.Text);
MyIBSQL.ExecQuery;

Вызывает исключение "-804 Неизвестный тип данных", если IBServer стоит под Виндой 2000/ХР, а если под Линухом, то всё ОК. Куда копать ?


Соловьев   (2003-08-12 11:01:00) [21]

используй DateTimePicker - от многих траблов уйдешь.


Zacho   (2003-08-12 11:01:00) [22]

Дурацкая идея: а декларация UDF в базах под win и linux одинаковая ? Версии сервера одинаковые ?


Соловьев   (2003-08-12 10:59:00) [23]


> 3) Если конкретное значение подставить, то работает

тогда не понятно... все таки в той стороне.


Жук   (2003-08-12 10:57:00) [24]


> Vlad (12.08.03 10:52)

Понятно. Нет, это не в той стороне :-(


Vlad   (2003-08-12 10:52:00) [25]

Если у тебя MaskEdit в котором задана маска, то проперть Text вернет тебе значение БЕЗ маски, а проперть EditText вернет значение с учетом маски


Жук   (2003-08-12 10:49:00) [26]


> Vlad (12.08.03 10:37) [12]
> Попробуй присвоить параметру StrToDate(MaskEdit1.EditText)

Не понял.


Жук   (2003-08-12 10:39:00) [27]


> roottim (12.08.03 10:30)

Нет.

> Zacho © (12.08.03 10:27)

1) Не процедура, функция(УДФ). Была написана под винду, потом переписана под линух.
2) Диалект 1
3) Если конкретное значение подставить, то работает
4) Из IBExpert точно такие же глюки.


Vlad   (2003-08-12 10:37:00) [28]

Попробуй присвоить параметру StrToDate(MaskEdit1.EditText)


roottim   (2003-08-12 10:30:00) [29]

MyIBSQL.SQL.Add("select firstdayofmonth(:ondate) from rdb$database");
MyIBSQL.ParamByName("ondate").AsDate Time:=StrToDate(MaskEdit1.T ext);
MyIBSQL.ExecQuery;


Zacho   (2003-08-12 10:28:00) [30]

И еще: а если вместо параметра конкретное значение подставить ? И так же работает этот запрос из IBExpert, например ?


Zacho   (2003-08-12 10:27:00) [31]

На всякий случай, приведи текст процедуры firstdayofmonth и укажи, в каком диалекте работаешь.


Жук   (2003-08-12 10:26:00) [32]


> Соловьев © (12.08.03 10:19)

Это-то понятно.:-)
Я говорю, что -804 никуда не делось.


> Nikolay M. © (12.08.03 09:50)
> Johnmen © (12.08.03 09:56)

Даже при явном задании типа параметра ругается также. :-(

Может есть какие-то нюансы в "Win vs. Linux" ?


Соловьев   (2003-08-12 10:19:00) [33]

MyIBSQL.SQL.Add("select firstdayofmonth(cast(:ondate as timestamp)) from rdb$database");


Жук   (2003-08-12 10:16:00) [34]


> Соловьев © (12.08.03 10:06)

Ругается также, да ещё добавил "SQL warning code = 301. DATE data type is now called TIMESTAMP."


Соловьев   (2003-08-12 10:06:00) [35]

А если
MyIBSQL.SQL.Add("select firstdayofmonth(cast(:ondate as date)) from rdb$database");
MyIBSQL.ParamByName("ondate").AsString:=MaskEdit1.Text;


Жук   (2003-08-12 10:01:00) [36]

Nikolay M. © (12.08.03 09:50)
Johnmen © (12.08.03 09:56)
А-а ! Понял, ща попробую.


Johnmen   (2003-08-12 09:56:00) [37]

MyIBSQL.ParamByName("ondate").AsDateTime:=...
Ну и тип параметра д.б. определен...


Жук   (2003-08-12 09:52:00) [38]

Даже если :
MyIBSQL.SQL.Add("select firstdayofmonth(:ondate) from rdb$database");
MyIBSQL.Prepare;

Всё равно лается :-(


Nikolay M.   (2003-08-12 09:50:00) [39]

MyIBSQL.ParamByName("ondate").DataType = ftDate;
?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо