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

Вниз

Еще раз я...   Найти похожие ветки 

 
Данила   (2008-01-16 13:37) [0]

Здравствуйте! У меня есть таблица gs с полями (ID1, name, n, disabled, ID2). Пытаюсь в неё добавить новое поле  с помощью следующего кода:

  with AdoCommand1 do
  begin
  CommandText :=
      "insert into gs (name,n,disabled,ID2)"+
      "values (Replace(:Name,""/"",""-""),1,0,:ID2)";
  CommandType := CmdText;
  Parameters.ParamByName("ID2").Value := ID;
  Parameters.ParamByName("Name").Value := Name;
  Execute;
  end;

У меня он не работает, текст ошибки: "AdoCommand1: Parameter "ID2" not found".

Перед новым годом я уже задавал этот вопрос, там мне ничё не помогло(. Обсуждение было тут : http://delphimaster.net/view/3-1198915557/


 
Kolan ©   (2008-01-16 13:45) [1]

Вставь свой параметр руками, то есть

Не
"values (Replace(:Name,""/"",""-""),1,0,:ID2)";

А
Format("values (Replace(:Name,""/"",""-""),1,0, %s)", [IntToStr(ID)]); //Если ID — это не Integer подредактируй&#133


 
Kolan ©   (2008-01-16 13:47) [2]


> там мне ничё не помогло

Так а где ты сделал Prepare как тебе советовали?


 
stone ©   (2008-01-16 15:06) [3]


> CommandType := CmdText;

Смотри внимательно код. Ошибка здесь.


 
Sergey13 ©   (2008-01-16 15:06) [4]

> [0] Данила   (16.01.08 13:37)
> Обсуждение было тут

Но ты из него ничего не вынес. Опять "добавить новое поле"

> "values (Replace(:Name,""/"",""-""),1,0,:ID2)";

А почему бы всякие Replace не вынести например в присвение значения параметру?


 
Данила   (2008-01-16 15:10) [5]

Попробовал формат, вроде помогло, но щас вылезает другая ошибка:

"The name "ADOCommand1" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted".

Prepare делал так : AdoCommand1.Prepared.


 
Данила   (2008-01-16 15:15) [6]


> Но ты из него ничего не вынес. Опять "добавить новое поле"

я просто скопировал вопрос из той темы(.


> Смотри внимательно код. Ошибка здесь.

какая? эту команду я вообще убрал.


> А почему бы всякие Replace не вынести например в присвение
> значения параметру?

ну да, можно попробовать, но мне кажется ошибка не в этом.


 
Kolan ©   (2008-01-16 15:22) [7]

А почему ты не выполнил предложение sniknik"а и не добавил пробелы?


 
Данила   (2008-01-16 15:29) [8]

Пробелы я добавлял, это не повлияло ни на чё, в данный момент код такой :

   with AdoCommand1 do
begin
   Prepared := true;
   CommandText :=
       "insert into gs (name,n,disabled,ID)"+
       Format("values (Replace( %s,""/"",""-""),1,0, %s)", [Name, IntToStr(ID)]);
   Execute;
end;


а вариант с параметрами вот такой:

   with AdoCommand1 do
   begin
   Prepared := True;
   CommandText :=
       "insert into gs (name,n,disabled, ID)"+
       "values (Replace( :Name ,""/"",""-""),1 ,0 , :ID )";
   Parameters.ParamByName("ID").Value := ID;
   Parameters.ParamByName("Name").Value := Name;
   Execute;
   end;


 
Правильный_Вася   (2008-01-16 15:35) [9]

нахрена козе баян?
Parameters.ParamByName("Name").Value := Replace( Name ,"/","-");


 
Данила   (2008-01-16 15:47) [10]


> Правильный_Вася   (16.01.08 15:35) [9]
> нахрена козе баян?

и правда, нахрена, подумали создатели дельфи и решили, что такой команды у них не будет)))(я про реплейс). а если делать его вручную, то ето еще 3-5 лишних строки в коде.


 
Данила   (2008-01-16 15:54) [11]

Тем более что в варианте с параметрами ошибка "AdoCommand1: Parameter "ID" not found" еще не исправлена(


 
Правильный_Вася   (2008-01-16 16:18) [12]


>  такой команды у них не будет)))(я про реплейс

stringreplace есть


 
sniknik ©   (2008-01-16 16:19) [13]

> Prepared := True;
у тебя просто талант писать в том месте где не нужно... ну вот подумай нафига "препарить" то, чего еще нет?

> disabled
может быть зарезервированным полем. по идее оно у тебя в списке полей, может и разобраться, но ....

кстати ID случаем не авто инкремент?

> и решили, что такой команды у них не будет
потому что операция со строками, и в дельфи она называется более логично. (имхо) и кстати вариант от Правильный_Вася, вполне может работать и с Format. который я вижу ты умеешь использовать.

> Parameter "ID" not found" еще не исправлена(
банально отключена опция "парамчек"?

> А почему ты не выполнил предложение sniknik"а и не добавил пробелы?
ну тогда был немного лучшего мнения о знаниях автора... сейчас думаю вряд ли там чтото мудреное.

p.s. оформляй тему правильно!!!



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

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

Наверх




Память: 0.5 MB
Время: 0.021 c
15-1210087838
dr_creigan
2008-05-06 19:30
2008.06.22
роды слов.......((((


2-1211786887
Сергей
2008-05-26 11:28
2008.06.22
Подскажите, пожалуйста как передать данные из формы в форму.


15-1210145256
Галинка
2008-05-07 11:27
2008.06.22
Как вернуть массив строк из dll


15-1210165710
pasha_golub
2008-05-07 17:08
2008.06.22
CodeGear продалось Ebarcadero, вроде как :)


2-1211821514
DJ_UZer
2008-05-26 21:05
2008.06.22
Добавить ссылку в меню файла "отправить"