2013-10-07 2 views
1

Delphi에서 SQLite 테이블에 정수 값을 삽입하려고합니다.
empusergroup_id은 정수이고 label 인 경우 description은 문자열 데이터 유형입니다.Delphi에서 SQLite 테이블에 정수 값을 삽입하는 방법

var 
    gid: Integer; 
    sdescription,ldescription: String; 
begin 
    sdescription := RzEdit1.Text; 
    ldescription := RzMemo1.Text; 
    gid := Integer(RzComboBox1.Items.Objects[RzComboBox1.Items.IndexOf(gname)]); 

    try 
    SQLConnection1.Connected := true; 
    SQLMonitor1.Active := True; 
    sSql := 'INSERT INTO emp(usergroup_id, label, description) VALUES (gid,''' + sdescription + ''',''' + ldescription + ''')'; 
    SQLConnection1.ExecuteDirect(sSql); 

    except 
    on E: EDatabaseError do 
     ShowMessage('Exception raised with message' + E.Message); 
    end; 
end; 

그것은 Unknown column gid으로 나에게 오류를주고 다음과 같이
내 코드입니다. 그것은 성공적으로 테이블에 값을 삽입

sSql := 'INSERT INTO emp(usergroup_id, label, description) VALUES (1,''' + sdescription + ''',''' + ldescription + ''')'; 

:
나는 그것이 작동하는 고정 된 정수 값이 같은 대신 변수를 시도합니다.
gid의 정수 값을 위 쿼리와 함께 데이터베이스에 삽입하는 방법. 적절한 형식은 무엇입니까?

답변

6

gid은 SQL 문의 일부가됩니다 (따라서 오류 : Unknown column gid). 당신은 그런이없는 것매개 변수를 사용했을 경우

sSql := 'INSERT INTO emp(usergroup_id, label, description) VALUES (' + InttoStr(gid) + ', ''' + sdescription + ''',''' + ldescription + ''')'; 

:
당신은 (당신이 sdescriptionldescription에 그랬던 것처럼) SQL 문을 생성하기 위해 델파이 gid 변수를 사용할 필요가 예 :

qry := TSQLQuery.Create(nil); // or what ever TQuery component you use in your framework 
try 
    qry.SQLConnection := SQLConnection1; 
    qry.SQL.Text := 'INSERT INTO emp(usergroup_id, label, description) VALUES (:usergroup_id, :label, :description)'; 
    qry.Params.ParamByName('usergroup_id').Value := gid; 
    qry.Params.ParamByName('label').Value := sdescription; 
    qry.Params.ParamByName('description').Value := ldescription; 
    qry.ExecSQL; 
finally 
    qry.Free; 
end; 
+0

보너스 코드 및 세부 답변 도움이되었지만 매개 변수 usergroup_id와 같은 오류가 발생했습니다. 같은 재치 h 레이블 및 설명. 값 : = gid;' –

+4

항상 그렇듯이, 매개 변수에 +1;) QQuery의 하위 클래스 인 TSQLQuery와 수정 된 코드를 다음과 같이 사용하고 있습니다 : qry.Params.ParamByName ('usergroup_id'). – whosrdaddy

관련 문제