|
Прямой запрос и апостроф (') (Как вставить запись в БД (sqlite), содержащий апостроф) |
☑ |
0
Aleksey_3
05.10.10
✎
00:26
|
1С дбф, 1SQLite
Как вставить запись в БД (sqlite), содержащий апостроф.
Например пусть будет у нас внешняя таблица (Table) с одной колонкой name. Мы хотим вставить в эту таблицу наименование товара.
Запрос.ВыполнитьЗапрос(insert into Table value ('" + ПеременнаСИменем + "'));
Если ПеременнаСИменем содержит апостроф, то происходит ошибка (причина которой понятно). А вот как сохранить апостроф и вставить текст - непонятно.
|
|
1
PushoN
05.10.10
✎
00:50
|
Обрезать Переменную если содержит апостроф.
|
|
2
trdm
05.10.10
✎
01:19
|
попробовать экранировать "\'" ы?
|
|
3
trdm
05.10.10
✎
01:42
|
+(2) чета интерпретатор консольный клинит после insert into tab1 values('one\' two', 12);
|
|
4
Warlock
05.10.10
✎
02:14
|
insert into tab1 values('one'' two', 12);
|
|
5
Ёпрст
гуру
05.10.10
✎
09:44
|
(0) ''
|
|
6
Cthulhu
05.10.10
✎
09:57
|
волшебное правило: для включения спец.символа в литерал он дублируется.
|
|
7
ghOstik
05.10.10
✎
10:00
|
попробуй использовать две ковычки "" у работает с ними
|
|
8
Aleksey_3
05.10.10
✎
10:35
|
Т.е. получаеться прежде чем вставить строку ее нужно будет предварительно модифицировать :(
|
|
9
orefkov
05.10.10
✎
10:51
|
СтрЗаменить("'", "''")
|
|
10
orefkov
05.10.10
✎
10:54
|
Простите, пишу с больницы с телефона.
+ СтрЗаменить(ПеременнаясИменем, "'", "''") +
Либо биндить как SQL-параметр
|
|
11
Ёпрст
гуру
05.10.10
✎
13:23
|
(10) ты лучше выздоравливай.. :)
|
|
12
trdm
05.10.10
✎
16:04
|
хм.. пашет. SQLite version 3.7.2 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> create table tab1 (one varchar(20), two smalint); sqlite> insert into tab1 values('o1',10); sqlite> insert into tab1 values('o1''55',20); sqlite> select * from tab1; o1|10 o1'55|20
|
|