Главная страница
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.019 c
4-1191974307
Dmitry S
2007-10-10 03:58
2008.06.22
Работа с доменом и локальными учетками


2-1211805768
opoloXAI
2008-05-26 16:42
2008.06.22
CF_Text и CF_Bitmap вместе


2-1211872333
Первокласник Вася
2008-05-27 11:12
2008.06.22
Отправка письма на NMSMTP1


2-1211994788
assassin8899
2008-05-28 21:13
2008.06.22
Edit


15-1210428840
Cj
2008-05-10 18:14
2008.06.22
Side Bar вот только для ХР