2017-04-27 26 views
0
source:= tabledemap.FieldByName('table source').AsString + '('+ tabledemap.FieldByName('colonne source').AsString+')'; 
    showmessage(source) ; 

소스 값은 열입니다 이

FDQuery6.SQL.Add ('INSERT INTO source Values ("t") '); 

    FDQuery6.Execute; 

     showmessage('row inserted'); 

같은 SQL 요청에서 소스 변수의 값을 사용하지만 프로그램은 소스 변수의 값의 텍스트를 사용하지 못하고 소스가 테이블과 디스플레이의 이름은 나에게 있다고 생각합니다

--------------------------- 
Notification des exceptions du débogueur 
--------------------------- 
Le projet x a déclenché la classe d'exception EMySQLNativeException avec le message '[FireDAC][Phys][MySQL] Table 'a.source' doesn't exist'. 

"source", + source +를 시도했지만 작동하지 않습니다. 누군가 SQL 쿼리에서 소스 변수의 텍스트를 사용하는 데 도움을 줄 수 있다면 감사 할 것입니다.

답변

1

FireDAC에서는 전 처리기 매크로를 사용하여 테이블과 필드 이름을 쉽게 비교할 수 있습니다. 예를 들어 :

FDQuery.SQL.Text := 'INSERT INTO &TableName (&FieldName) VALUES "ConstValue"'; 
FDQuery.MacroByName('TableName').AsIdentifier := 'MyTable'; 
FDQuery.MacroByName('FieldName').AsIdentifier := 'MyField'; 
FDQuery.ExecSQL; 

매크로의 종류에 대한 자세한 내용은 substitution variables 항목을 참조하십시오.