Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.121 c
2-1132227883
Дева
2005-11-17 14:44
2005.12.04
закрывающаяся панель


2-1131899074
Lex85
2005-11-13 19:24
2005.12.04
таблица StringGrid


14-1131551106
Сергей1981
2005-11-09 18:45
2005.12.04
Серийный номер жесткого диска


2-1131897519
grol
2005-11-13 18:58
2005.12.04
Работа с регионами


14-1130861726
X9
2005-11-01 19:15
2005.12.04
Драйвер на Data-кабель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский