![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка записи в таблицу базы [D7, MSSQL]
r9000 © (2004-05-25 12:11:00)Добрый день!
Вы не могли бы помочь, пожалуйста. Строковая переменная получает
значение r10=#0#0#0#0#0 и при попытке вставить это значение в таблицу базы:
s3:='insert into Ats_snmp(P_entindex)';
s3:=s3+'VALUES ('''+r10+''') ';
выдает ошибку так как получаетс r10=''#0#0#0#0#0'' и запрос его невоспринимает. Каким образом вставить это значение в таблицу?
Может его нужно как-то преобразовать?
paul_k (2004-05-25 16:12:00) [1]
> 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)';
и читаем как работать с параметрами
Sandman25+1 (2004-05-25 14:58:00) [2]Следующий пост.
Может, пора уже начать использовать параметр? Тем более, что используется MSSQL
ega23 (2004-05-25 14:56:00) [3]Попробуй так: s3:=s3+' VALUES ('+Chr(39)+r10+Chr(39)+') ';
А вообще: r10 у тебя строка или что?
r9000 (2004-05-25 14:39:00) [4]Даже s3:=s3+' VALUES ('+QuotedStr(r10)+') ' видится в Query Analyzer как VALUES (''#0#0#0#0#0''), а позиция Pos(#39,R10) равна Inaccassible value
paul_k (2004-05-25 14:00:00) [5]А проверить?
Pos(#39,R10) чему равно?
s3:=s3+' VALUES ('+QuotedStr(r10)+') ';
пробовал писать? вместо множественных апострофов?
r9000 (2004-05-25 13:52:00) [6]Ошибка в 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 13:48:00) [7]1. проверить все-таки что приходит в R10.
если там значение #0#0#0#0 то s3:=s3+' VALUES ('+QuotedStr(r10)+') ';
если там ''#0#0#0#0'' то s3:=s3+' VALUES ('+r10+') ';
ega23 (2004-05-25 13:36:00) [8]По апострофу одному убрать
bushmen (2004-05-25 13:35:00) [9]>то выдается ошибка
Что за ошибка? И что в Query Analyzer выдает на insert into Ats_snmp(P_entindex) VALUES ('#0#0#0#0#0') ?
r9000 (2004-05-25 13:30:00) [10]Да нет просто в переменную помещается 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' для нормальной отработке запроса. Что делать?
paul_k (2004-05-25 13:28:00) [11]Перечень стандартных вопросов при отладке подобного кода:
S3 какое значение принимает?
Из Ouery Analiser какой результат выполнения этой строки?
Если написать
s3:=s3+' VALUES ('+QuotedStr(r10)+') ';
что изменится?
Внутри R10 есть апострофы?
Следующим постом предложат использовать запрос с параметром
ega23 (2004-05-25 13:15:00) [12]В смысле, с кавычками общитался?