Главная страница
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.022 c
3-1085827922
Denis_Visma
2004-05-29 14:52
2004.06.20
Вопрос по нескольким ДатаСеиам и одной транзакции


1-1086453802
qwertqwert
2004-06-05 20:43
2004.06.20
Помогите утопающему


4-1084348579
OlegM
2004-05-12 11:56
2004.06.20
Загрузить иконку из ресурса в image как


6-1082619213
Анонимщик
2004-04-22 11:33
2004.06.20
TServerSocket, TClientSocket. Синхронный и асинхронный, блокирующ


4-1084725139
andruxin
2004-05-16 20:32
2004.06.20
помогите с отловом WM_SYSCOMMAND