Форум: "Базы";
Текущий архив: 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 подредактируй…
← →
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