Конференция "Базы" » ADOCommand.Parameters.CreateParameter [D7, MSSQL, Paradox]
 
  • 312kbps (20.06.08 21:21) [0]
    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 штук

    скажи, как понять какиой именно параметр у меня не подходит !?
  • Правильный-Вася (20.06.08 21:44) [1]
    нахрена козе баян, а?

    параметры у тебя создаются автоматически при присваивании SQL
    можно сразу использовать, можно доуточнить тип данных и input-направление
    остальное нафиг не нужно
  • engine © (20.06.08 21:47) [2]
    Не понял, а зачем CreateParameter?
  • 312kbps (20.06.08 22:12) [3]
    ни чего не понял )))

    что я делаю не так !?
    на самом деле мне нужно только два последних параметра(проще было сделать все поля выгрузить в параметры), так они мемо и напрямую в сиквел их выгрузить из парадокса нельзя, то первая причина

    а вторая, в том что, при прямом экспорте в сиквел, там нарушается кодирока и получаются иероглифы

    вот я через вде считываю таблица и инсертю а сиквел )
  • Правильный-Вася (20.06.08 22:23) [4]

    > мне нужно только два последних параметра(проще было сделать
    > все поля выгрузить в параметры)

    так два или все?

    > что я делаю не так !?


    > параметры у тебя создаются автоматически при присваивании SQL
    > можно сразу использовать, можно доуточнить тип данных и input-направление
  • 312kbps (20.06.08 22:32) [5]
    "> параметры у тебя создаются автоматически при присваивании SQL
    > можно сразу использовать, можно доуточнить тип данных и input-направление"

    я этого не понял, объясните подалуйста по другому ) !?

    даже если я так решил решить свою задачу, как же можно узнать в каком параметре у меня косяк !? )
  • engine © (20.06.08 23:16) [6]
    Тебе нужно присвоить параметру значение?
    Если да, то делай таким образом:
    Command..Parameters.ParamByName('p' + IntToStr(p)).Value := DataS.DataSet.Fields.Fields[p].Value;

  • 312kbps (21.06.08 00:11) [7]
    я так делал, но после того как начинаю присваивать 4 параметр , у меня ошибка, сообщает что нельзя больше 3.

    !?
  • engine © (21.06.08 05:20) [8]
    > [7] 312kbps   (21.06.08 00:11)
    > сообщает что нельзя больше 3

    Что, прям так и сообщает?

    > [5] 312kbps   (20.06.08 22:32)
    > как же можно узнать в каком параметре у меня косяк !? )

    Смотри:

    > [7] 312kbps   (21.06.08 00:11)
    > но после того как начинаю присваивать 4 параметр , у меня
    > ошибка,
  • 312kbps (21.06.08 14:11) [9]
    без создания праметра я пробовала, делал так
    Command..Parameters.ParamByName('p' + IntToStr(p)).Value := DataS.DataSet.Fields.Fields[p].Value;

    ОШИБКА
    "Command:  Parametr 'p0' not found"
  • Правильный-Вася (22.06.08 18:56) [10]

    > "Command:  Parametr 'p0' not found"

    и какой же ж он 4-й?
    чтобы так не ругалось, не нужно очищать список параметров
  • имя (24.12.08 01:42) [11]
    Удалено модератором
  • Ega23 © (24.12.08 10:13) [12]

    > параметры у тебя создаются автоматически при присваивании
    > SQL


    Щаз. Это только в идеальном варианте так будет. А создай-ка ты какой-нибудь TADODataSet в рантайме, причём когда у тебя ещё никакого коннекшена нет.
    Я посмотрю, как у тебя автоматом параметры появятся, ага...
 
Конференция "Базы" » ADOCommand.Parameters.CreateParameter [D7, MSSQL, Paradox]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]