-
command.CommandText:='insert into Sec1 values(:p0,:p1,....,:p17)'; command.Parameters.Clear; for p:=0 to DataS.DataSet.FieldCount-1 do begin command.Parameters.CreateParameter('p'+IntToStr(p), DataS.DataSet.Fields.Fields[p].DataType, pdInput, DataS.DataSet.Fields.Fields[p].Size, DataS.DataSet.Fields.Fields[p].AsString); end; command.Execute;
Ошибка "Неправильно определен объект Parameter. Представлены не совместимые или неполные сведения".
я из базы парадокс делаю инсерт в MSSQL2000 параметров 18 штук
скажи, как понять какиой именно параметр у меня не подходит !?
-
нахрена козе баян, а?
параметры у тебя создаются автоматически при присваивании SQL можно сразу использовать, можно доуточнить тип данных и input-направление остальное нафиг не нужно
-
Не понял, а зачем CreateParameter?
-
ни чего не понял )))
что я делаю не так !? на самом деле мне нужно только два последних параметра(проще было сделать все поля выгрузить в параметры), так они мемо и напрямую в сиквел их выгрузить из парадокса нельзя, то первая причина
а вторая, в том что, при прямом экспорте в сиквел, там нарушается кодирока и получаются иероглифы
вот я через вде считываю таблица и инсертю а сиквел )
-
> мне нужно только два последних параметра(проще было сделать > все поля выгрузить в параметры)
так два или все?
> что я делаю не так !?
> параметры у тебя создаются автоматически при присваивании SQL > можно сразу использовать, можно доуточнить тип данных и input-направление
-
"> параметры у тебя создаются автоматически при присваивании SQL > можно сразу использовать, можно доуточнить тип данных и input-направление"
я этого не понял, объясните подалуйста по другому ) !?
даже если я так решил решить свою задачу, как же можно узнать в каком параметре у меня косяк !? )
-
Тебе нужно присвоить параметру значение? Если да, то делай таким образом: Command..Parameters.ParamByName('p' + IntToStr(p)).Value := DataS.DataSet.Fields.Fields[p].Value;
-
я так делал, но после того как начинаю присваивать 4 параметр , у меня ошибка, сообщает что нельзя больше 3.
!?
-
> [7] 312kbps (21.06.08 00:11) > сообщает что нельзя больше 3
Что, прям так и сообщает?
> [5] 312kbps (20.06.08 22:32) > как же можно узнать в каком параметре у меня косяк !? )
Смотри:
> [7] 312kbps (21.06.08 00:11) > но после того как начинаю присваивать 4 параметр , у меня > ошибка,
-
без создания праметра я пробовала, делал так Command..Parameters.ParamByName('p' + IntToStr(p)).Value := DataS.DataSet.Fields.Fields[p].Value;
ОШИБКА "Command: Parametr 'p0' not found"
-
> "Command: Parametr 'p0' not found"
и какой же ж он 4-й? чтобы так не ругалось, не нужно очищать список параметров
-
Удалено модератором
-
> параметры у тебя создаются автоматически при присваивании > SQL
Щаз. Это только в идеальном варианте так будет. А создай-ка ты какой-нибудь TADODataSet в рантайме, причём когда у тебя ещё никакого коннекшена нет. Я посмотрю, как у тебя автоматом параметры появятся, ага...
|