Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизВставка записи в таблицу базы Найти похожие ветки
← →
r9000 (2004-05-25 12:11) [0]Добрый день!
Вы не могли бы помочь, пожалуйста. Строковая переменная получает
значение r10=#0#0#0#0#0 и при попытке вставить это значение в таблицу базы:
s3:="insert into Ats_snmp(P_entindex)";
s3:=s3+"VALUES ("""+r10+""") ";
выдает ошибку так как получаетс r10=""#0#0#0#0#0"" и запрос его невоспринимает. Каким образом вставить это значение в таблицу?
Может его нужно как-то преобразовать?
← →
ega23 © (2004-05-25 13:15) [1]В смысле, с кавычками общитался?
← →
paul_k © (2004-05-25 13:28) [2]Перечень стандартных вопросов при отладке подобного кода:
S3 какое значение принимает?
Из Ouery Analiser какой результат выполнения этой строки?
Если написать
s3:=s3+" VALUES ("+QuotedStr(r10)+") ";
что изменится?
Внутри R10 есть апострофы?
Следующим постом предложат использовать запрос с параметром
← →
r9000 (2004-05-25 13:30) [3]Да нет просто в переменную помещается r10=#0#0#0#0#0(это значение приходит с оборудования) мне его нужно поместить в таблицу базы, и если делать s3:="insert into Ats_snmp(P_entindex)";
s3:=s3+"VALUES ("""+r10+""") ";
то выдается ошибка. Посмотрев s3 вижу insert into Ats_snmp(P_entindex)VALUES (""#0#0#0#0#0""), а не "#0#0#0#0#0" для нормальной отработке запроса. Что делать?
← →
bushmen © (2004-05-25 13:35) [4]>то выдается ошибка
Что за ошибка? И что в Query Analyzer выдает на insert into Ats_snmp(P_entindex) VALUES ("#0#0#0#0#0") ?
← →
ega23 © (2004-05-25 13:36) [5]По апострофу одному убрать
← →
paul_k © (2004-05-25 13:48) [6]1. проверить все-таки что приходит в R10.
если там значение #0#0#0#0 то s3:=s3+" VALUES ("+QuotedStr(r10)+") ";
если там ""#0#0#0#0"" то s3:=s3+" VALUES ("+r10+") ";
← →
r9000 (2004-05-25 13:52) [7]Ошибка в Query Analyzer выдается на insert into Ats_snmp(P_entindex) VALUES (""#0#0#0#0#0""), а не на insert into Ats_snmp(P_entindex) VALUES ("#0#0#0#0#0"), а получить VALUES ("#0#0#0#0#0") мне пока не удается. В r10=#0#0#0#0#0 значение без кавычек.
← →
paul_k © (2004-05-25 14:00) [8]А проверить?
Pos(#39,R10) чему равно?
s3:=s3+" VALUES ("+QuotedStr(r10)+") ";
пробовал писать? вместо множественных апострофов?
← →
r9000 (2004-05-25 14:39) [9]Даже s3:=s3+" VALUES ("+QuotedStr(r10)+") " видится в Query Analyzer как VALUES (""#0#0#0#0#0""), а позиция Pos(#39,R10) равна Inaccassible value
← →
ega23 © (2004-05-25 14:56) [10]Попробуй так: s3:=s3+" VALUES ("+Chr(39)+r10+Chr(39)+") ";
А вообще: r10 у тебя строка или что?
← →
Sandman25+1 (2004-05-25 14:58) [11]Следующий пост.
Может, пора уже начать использовать параметр? Тем более, что используется MSSQL
← →
paul_k © (2004-05-25 16:12) [12]
> r9000 (25.05.04 14:39) [9]
> Даже s3:=s3+" VALUES ("+QuotedStr(r10)+") " видится в Query
> Analyzer как VALUES (""#0#0#0#0#0""), а позиция Pos(#39,R10)
> равна Inaccassible value
разжевывать надо?
1.
if Pos(#39,R10)>0 //(проверка есть ли апострофы)
then s3:=s3+" VALUES ("+r10+") "
else s3:=s3+" VALUES ("+QuotedStr(r10)+") ";
2.
//Удаляем все апострофы
while pos(#39,r10)>0 do
delete(R10,pos(#39,r10),1)
s3:=s3+" VALUES ("+QuotedStr(r10)+") ";
3. пишем запрос с параметром
InsQuery.sql.text:="insert into Ats_snmp(P_entindex) VALUES (:InputValue)";
и читаем как работать с параметрами
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c