2017-04-26 2 views
0

도구 개발 변경 TTB 삽입 반 (X) VALUES (AAA = 111 & BBB = 222 & CCC = 333) ;는 FireDAC 함께 pgSQL의로 데이터를 삽입 한 후, 데이터 정보는

삽입하기 전에

: AAA = 111 & BBB = 222 & CCC는 =

333 그러나 FireDAC으로 삽입 한 후, 문자열이된다 : 는 AAA = 111 = 222 = 333

말하고 FireDAC를 사용하는 동안 "& bbb"및 "& ccc"문자가 삭제되었습니다.

고맙습니다. 고맙습니다. 고맙습니다.

+1

해당 문자열을 처리하는 방법을 보려면 해당 구문을 호출하는 데 사용하는 코드를 공유 할 수 있습니까? –

+0

FDQuery1.SQL.Clear; FDQuery1.SQL.Add ('INSERT INTO ttb VALUES ('+ QuotedStr ('aaa = 111 & bbb = 222 & ccc = 333') + ');') ;; FDQuery1.ExecSQL; FDQuery1.Close; – shuaixf

답변

2

항상 조회에 매개 변수를 사용하는 것이 더 GET 습관 (Online documentation), 당신이 이러한 문제를 피할 수있다.

FDQuery1.SQL.Text:='insert into ttb (x) values(:TestData)'; 
FDQuery1.Params.ParamByName('TestData').AsString:='aaa=111&bbb=222&ccc=333'; 
FDQuery1.ExecSQL; 

이 문서에서 언급 한 장점 외에도, 당신은 SQL 주입 및 매개 변수를 사용하지 않을 경우 데이터베이스에 발생할 수있는 다양한 "불쾌한"일에서 안전 할 것 : 같은 귀하의 경우 코드에서 이 보일 것입니다.