2012-05-23 6 views
1

EDIT: Проблема решена ... и никакого отношения к формулировкам вопроса ... простите за трату времени: - \SQLite - как избежать с запятой в строке в операторе вставок

Я понимаю, что обычно вы хотите использовать какой-то слой абстракции и не писать свои собственные вставки для SQLite, если на таких платформах, как iOS и Android (если вы пишете телефонные приложения), есть инструменты для этого.

К сожалению, я в ситуации, когда это не вариант из-за инструментов, которые у меня есть, и количества различных платформ/систем.

Проблема у меня ДЕЙСТВИТЕЛЬНО проста, но я не могу найти ответ через google, stackoverflow и т. Д. Я просто хочу сделать что-то вроде следующего запроса, используя команду «executeSql» Webkit:

INSERT INTO someTable VALUES (''some string'', ''some string with a semicolon; in it''); 

Проблема: это не удается, если я не удалю точку с запятой. (Примечание: удвоенные одинарные кавычки связаны с тем, что оператор, отправляемый в команду executeSql webkit, должен быть экранирован. Возможно, это часть проблемы?)

Если я возьму точку с запятой из строки во втором поле - заявление отлично работает ...

Если я сбегу от точки с запятой с помощью обратной косой черты - не повезло!

Документация для sqlite кажется в лучшем случае посредственной, и я не мог понять, как я должен убежать от этой точки с запятой ... Любая помощь будет принята с благодарностью.

+3

Является ли строка в sqlite действительно разделенной * двумя одинарными кавычками? Я бы ожидал, что это будет строка '' string ''или' ', но не' '' string''', - как правило, вы вставляете апостроф в строку, например. ''O''Brien'' ... –

+0

@AaronBertrand Интересно, как он« отлично работает »тогда :( –

+0

@pst, следовательно, мой вопрос. :-) –

ответ

1

Это прекрасно работает:

CREATE Table DummyTable(FirstCol VARCHAR(25), SecondCol VARCHAR(25)); 
INSERT INTO DummyTable VALUES ('This is a test', 'This is test two; OK?'); 
SELECT * FROM DummyTable; 

-- output 
FirstCol     SecondCol 
========================= ========================= 
This is a test   This is test two; OK? 

Проблема, как представляется, удвоение котировок в вашем SQL заявления.

+0

Спасибо .. оказалось, что проблема не была ... это было что-то совершенно несвязанное и глупое с моей стороны. Я собираюсь удалить этот вопрос - спасибо за помощь! – honestbleeps

Смежные вопросы