Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

sqlduery.params.parambyname( pf2 ).asstring >>> error 22018   Найти похожие ветки 

 
zig   (2005-10-21 23:50) [0]

всем привет народ помогите разобратся
имеется sql запрос (если запись есть то изменить поле если записи нет то добавить запись)
и все в нем работает если не присваивать pf2   значение  состоящие из цифр и букв  ("123qwe")
в ентом случае получаем сообщение от sql server  error 22018,
а просто с цифрами ("123") все работает.
в таблице все поля имеют тип varchar(254) not nul.
что  я делаю не так ??
 
sql:="update tbl1 set f1 = :pf1 where f2= :pf2  if @@rowcount = 0  insert into tbl1 (f1,f2) value (:pf1,:pf2)"
sqlquery1.sql.text:=sql;
sqlquery1.params.parambyname("pf1").asstring:="123";
sqlquery1.params.parambyname("pf2").asstring:="123qwe";
sqlquery1.execsql;


 
sniknik ©   (2005-10-22 00:03) [1]

2 параметра с одним именем не допускается, это не BDE.


 
Anatoly Podgoretsky ©   (2005-10-22 13:12) [2]

Может и допускаются, но не имеют смысла. На самом деле это P[0], P[1], P[2], P[3], а если он по недоразумению назвал почему то разные параметры одним и тем же именем, то он ССЗБ


 
zig   (2005-10-23 02:19) [3]

изменение имен параметров на :

sql:="update tbl1 set f1 = :pf1 where f2= :pf2  if @@rowcount = 0  insert into tbl1 (f1,f2) value (:pf3,:pf4)"
sqlquery1.sql.text:=sql;
sqlquery1.params.parambyname("pf1").asstring:="123";
sqlquery1.params.parambyname("pf2").asstring:="123qwe";
sqlquery1.params.parambyname("pf3").asstring:="123";
sqlquery1.params.parambyname("pf4").asstring:="123qwe";
sqlquery1.execsql;

ни чего не изменили таже самая ошибка !


 
sniknik ©   (2005-10-23 10:08) [4]

второй глюк:
в запросе должно быть values, странно т.к. говориш в каких то случаях это работало...  а должно всегда ошибку синтаксиса давать.

что за сообщение у ошибки 22018? не может быть чтобы просто цифру давало, ошибки mssql обычно сопровождаются текстом указывающим ее причину... если есть только бред  в виде цифры.... ну тоже может и mssql, но всетаки большая вероятность что это местные программисты "постарались" в общем посмотри тригеры на вставку, констраинты у таблици.
потом приведи класс ошибки (знать где это, в mssql/delphi...) в общем нужны вот эти значения
try
   ...
except
   on E: Exception do begin
       ... := E.ClassName;
       ... := E.Message;
   end;
end;


 
sniknik ©   (2005-10-23 10:25) [5]

да, еще. попробуй параметры присваивать через value
sqlquery1.params.parambyname("pf1").Value:="123";
... и т.д.

конечно же бред, но вдруг в DBExpress неправильная реализация в методе As... т.д. и тип неверно определяет. а value это вариант, т.е. то самое что в mssql в виде параметра "уходит".


 
zig   (2005-10-23 12:51) [6]

TO sninik

value > values это очепятка ))

ошибка 22018 трактуется макрософтом как невозможность конвертачии
данных


 
Anatoly Podgoretsky ©   (2005-10-23 13:09) [7]

Вот теперь настало время привести метаданные и типы sqlquery1.params[i]


 
sniknik ©   (2005-10-23 13:33) [8]

> value > values это очепятка ))
а других опечаток нет? например вот это вот
sql:="update tbl1 set f1 = :pf1 where f2= :pf2  if @@rowcount = 0  insert into tbl1 (f1,f2) value (:pf3,:pf4)"
sqlquery1.sql.text:=sql;
выполняется к коде? или это "отсебятина", а реально запрос прописан в дизайн тайме? и там есть уже предопределенные параметры...

> ошибка 22018 трактуется макрософтом как невозможность конвертачии данных
разве я просил узнать как что мелкософтом трактуется?

я вроде вполне конкретные вещи спрашивал проверить в [4] [5], и не просто так спрашивал, а потому что (см. описание в [4]). а в [5] это уже заранее предположение что тип неправилен в уже в дельфе, и проверка (именно конвертации данных изза несоответствий типов) при задании значения параметра по другому.



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
1-1131482578
gdaujk
2005-11-08 23:42
2005.12.04
Комбинаций клавиш Ctrl+C и Ctrl+V в TEdit е.


14-1131565515
бабба
2005-11-09 22:45
2005.12.04
Помогите с архитектурным решением


14-1131980549
Mozart
2005-11-14 18:02
2005.12.04
Фильм "Архангел" (Надеюсь так прокатит)


1-1130227894
CRep
2005-10-25 12:11
2005.12.04
Delphi, Crystal Reports Print Engine (crpe32.dll)


2-1131995292
Wishmaster
2005-11-14 22:08
2005.12.04
ЧТо-то не то... DLL