2013-05-02 7 views
1

나는 QsqlQuery를 사용하여 '%'를 포함하는 문자열을 삽입하려고하지만 난 항상 형 QSqlError의 오류를 얻고있다 :: TransactionError을 나는 "%"를 탈출하는 몇 가지 방법을 시도QSqlQuery를 사용하여 '%'를 (를) 포함하는 문자열을 삽입하는 방법은 무엇입니까?

"near "%": syntax error Unable to execute statement" 

메시지와 함께 하지만 여전히 그 오류 메시지가 나타납니다. 아래의 코드 스 니펫을 참조하십시오. "%%"대신에

query.exec(QString("INSERT INTO my_table (name, address) VALUES (\"%1\", \"%2\")") 
        .arg("Harry", "#302%%1,...")); 

, 나는, "\의 %를"시도 "\ %",하지만 여전히 작동하지 않았고 나도 같은 오류 메시지가 데.

+0

당신이 두 번 %를 시도 :

어쨌든, 당신은 매개 변수를 사용해야합니까? 나는 몇 차례 QStrings를 탈출해야했다. – Phlucious

+0

예 "%%"와 "\ %"를 시도했지만 아무 것도 작동하지 않았습니다. 그것은 잘 문자열 sqlite3 명령 줄에 비록 인용구 주위에 잘 작동합니다. –

+0

이스케이프 처리 된 따옴표로 쿼리를 래핑 해 보았습니다. – Phlucious

답변

0

SQL에서 문자열은 '이 아니라 "으로 구분됩니다.

query.prepare("INSERT INTO my_table (name, address) VALUES (?, ?)"); 
query.addBindValue("Harry"); 
query.addBindValue("#302%%1,..."); 
query.exec(); 
+0

매개 변수를 사용했습니다. 고마워. –