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

Вниз

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

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

Наверх





Память: 0.48 MB
Время: 0.04 c
2-1211729588
cyborg
2008-05-25 19:33
2008.06.22
Как отловить момент изменения файла


15-1210154445
Desp
2008-05-07 14:00
2008.06.22
корпоративная почта


15-1210432071
@!!ex
2008-05-10 19:07
2008.06.22
Альтернативный Windows Manager для KDE.


15-1210177626
Александр Иванов
2008-05-07 20:27
2008.06.22
Вложенные Repeater ы в ASP.NET


2-1212044089
pirks
2008-05-29 10:54
2008.06.22
Каскадные прокси





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский