Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Вставка записи в таблицу базы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1086636595
Duk
2004-06-07 23:29
2004.06.20
Потоки


14-1086036186
Игорь Шевченко
2004-06-01 00:43
2004.06.20
Поздравляю всех с днем защиты детей!


3-1085637811
din
2004-05-27 10:03
2004.06.20
Компонент DBMemo


1-1086702481
galexis
2004-06-08 17:48
2004.06.20
Как обратится к TEdit в цикле?


1-1086690046
dimuch
2004-06-08 14:20
2004.06.20
Подскажите по вопросу о иерархии