* 사용환경 : 인터베이스6
* 에러 메시지 : Dynamic sql error SQL error code = -104
Token unknown - line 2 , char -1 (혹은 line 1 , char 0)
한단계 진전이 있었습니다만 확실한 조언을 주신 고수님들이 안계시는군요..
도움을 바랍니다..(ParamBy('vno').AsString:=... 등등..소스방식을 바꾸어도 결과는 마찬가지입니다.)
with Ibquery1 do begin
Close;
SQL.Clear;
SQL.Add('select * from vcust ');
open;
append; //->insert대신 append명령을 써도 되는지요...(맨 끝줄에 자료추가시..)
showmessage( 'DB그리드에 빈줄 생기고 업데이트준비완료...' );//->성공했구요...
//insert;
FieldByName('vno').Value := regno;
FieldByName('vname').Value := regname;
FieldByName('vtel').Value := regtel;
FieldByName('v_jumin').Value := regjumin;
FieldByName('v_nick').Value := regnick;
FieldByName('post_no').Value := regpost;
FieldByName('add1').Value := regadd1;
FieldByName('add2').Value := regadd2;
FieldByName('family').Value := regfamily;
FieldByName('v_kind').Value := regkind;
FieldByName('v_point').Value := regpoint;
FieldByName('v_charge').Value := regcharge;
FieldByName('Regist_date').Value := regdate;
FieldByName('Last_visit').Value := regvisit;
FieldByName('v_s_money').Value := regmoney;
FieldByName('membership').Value := regmember;
showmessage( 'DB그리드 맨 아랬줄에 POst할 값들이 나타났습니다.' );// ->자료가 추가중인것이 디비그리드에 보입니다. 역시성공...
-------------------------------------여기까지는 잘 됩니다.
Post;
showmessage( 'Post에 성공 하였습니다.' );// -> 확실히 추가 되었습니다. 성공...
if ibtransaction1.InTransaction then
begin
showmessage( '트랜잭션 진입!!' );//->여기까지도 OK!!
try
showmessage( 'Try모드 진입!!' ); //-> Post 명령을 REM 시키면 이줄까지는 도착합니다.
applyupdates; // -> 이줄에서 다이나믹 에러, SQL Statement -104 어쩌구 하는 에러가 납니다.(IBQuery의 캐쉬모드는 True로 설정된 상태입니다.)
showmessage( 'commit전단계!!' );
ibtransaction1.commit;
showmessage( '기록성공!!' );->기록성공까지는 가지못하는군요...
---------------------------------------------------------------------------------
아래에 전체소스입니다.
무엇이 잘 못되었는지요...
procedure TForm1.Button8Click(Sender: TObject);
var
RegNo, RegName, RegTel, RegJumin, RegNick, RegPost:String;
RegAdd1, RegAdd2, RegKind, RegDate, Regvisit,RegMember : String;
Maxno, RegFamily, RegPoint, RegCharge, RegMoney: Integer;
begin
NoteBook1.PageIndex:=0;
with Ibquery1 do begin
Close;
SQL.Clear;
SQL.Add('select * from vcust ');
open;
append; //->insert대신 append명령을 써도 되는지요...(맨 끝줄에 자료추가시..)
showmessage( 'DB그리드에 빈줄 생기고 업데이트준비완료...' );//->성공했구요...
//insert;
FieldByName('vno').Value := regno;
FieldByName('vname').Value := regname;
FieldByName('vtel').Value := regtel;
FieldByName('v_jumin').Value := regjumin;
FieldByName('v_nick').Value := regnick;
FieldByName('post_no').Value := regpost;
FieldByName('add1').Value := regadd1;
FieldByName('add2').Value := regadd2;
FieldByName('family').Value := regfamily;
FieldByName('v_kind').Value := regkind;
FieldByName('v_point').Value := regpoint;
FieldByName('v_charge').Value := regcharge;
FieldByName('Regist_date').Value := regdate;
FieldByName('Last_visit').Value := regvisit;
FieldByName('v_s_money').Value := regmoney;
FieldByName('membership').Value := regmember;
showmessage( 'DB그리드 맨 아랬줄에 POst할 값들이 나타났습니다.' );// ->자료가 추가중인것이 디비그리드에 보입니다. 역시성공...
-------------------------------------여기까지는 잘 됩니다.
Post;
showmessage( 'Post에 성공 하였습니다.' );// -> 확실히 추가 되었습니다. 성공...
if ibtransaction1.InTransaction then
begin
showmessage( '트랜잭션 진입!!' );//->여기까지도 OK!!
try
showmessage( 'Try모드 진입!!' ); //-> Post 명령을 REM 시키면 이줄까지는 도착합니다.
applyupdates; // -> 이줄에서 다이나믹 에러, SQL Statement -104 어쩌구 하는 에러가 납니다.(IBQuery의 캐쉬모드는 True로 설정된 상태입니다.)
showmessage( 'commit전단계!!' );
ibtransaction1.commit;
showmessage( '기록성공!!' );->기록성공까지는 가지못하는군요...
Open;
except
ibtransaction1.rollback;
end;
end
else
showmessage('트랜잭션 모드가 아님!');
end ;
인터기초 wrote:
> * 사용환경 : 인터베이스6
> * 에러 메시지 : Dynamic sql error SQL error code = -104
> Token unknown - line 2 , char -1 (혹은 line 1 , char 0)
>
> 한단계 진전이 있었습니다만 확실한 조언을 주신 고수님들이 안계시는군요..
> 도움을 바랍니다..(ParamBy('vno').AsString:=... 등등..소스방식을 바꾸어도 결과는 마찬가지입니다.)
>
>
> with Ibquery1 do begin
> Close;
> SQL.Clear;
> SQL.Add('select * from vcust ');
> open;
>
> append; //->insert대신 append명령을 써도 되는지요...(맨 끝줄에 자료추가시..)
> showmessage( 'DB그리드에 빈줄 생기고 업데이트준비완료...' );//->성공했구요...
> //insert;
> FieldByName('vno').Value := regno;
> FieldByName('vname').Value := regname;
> FieldByName('vtel').Value := regtel;
> FieldByName('v_jumin').Value := regjumin;
> FieldByName('v_nick').Value := regnick;
> FieldByName('post_no').Value := regpost;
> FieldByName('add1').Value := regadd1;
> FieldByName('add2').Value := regadd2;
> FieldByName('family').Value := regfamily;
> FieldByName('v_kind').Value := regkind;
> FieldByName('v_point').Value := regpoint;
> FieldByName('v_charge').Value := regcharge;
> FieldByName('Regist_date').Value := regdate;
> FieldByName('Last_visit').Value := regvisit;
> FieldByName('v_s_money').Value := regmoney;
> FieldByName('membership').Value := regmember;
> showmessage( 'DB그리드 맨 아랬줄에 POst할 값들이 나타났습니다.' );// ->자료가 추가중인것이 디비그리드에 보입니다. 역시성공...
> -------------------------------------여기까지는 잘 됩니다.
> Post;
> showmessage( 'Post에 성공 하였습니다.' );// -> 확실히 추가 되었습니다. 성공...
>
> if ibtransaction1.InTransaction then
> begin
> showmessage( '트랜잭션 진입!!' );//->여기까지도 OK!!
>
> try
> showmessage( 'Try모드 진입!!' ); //-> Post 명령을 REM 시키면 이줄까지는 도착합니다.
> applyupdates; // -> 이줄에서 다이나믹 에러, SQL Statement -104 어쩌구 하는 에러가 납니다.(IBQuery의 캐쉬모드는 True로 설정된 상태입니다.)
>
>
> showmessage( 'commit전단계!!' );
> ibtransaction1.commit;
> showmessage( '기록성공!!' );->기록성공까지는 가지못하는군요...
> ---------------------------------------------------------------------------------
>
>
>
>
> 아래에 전체소스입니다.
> 무엇이 잘 못되었는지요...
>
>
> procedure TForm1.Button8Click(Sender: TObject);
> var
> RegNo, RegName, RegTel, RegJumin, RegNick, RegPost:String;
> RegAdd1, RegAdd2, RegKind, RegDate, Regvisit,RegMember : String;
> Maxno, RegFamily, RegPoint, RegCharge, RegMoney: Integer;
> begin
> NoteBook1.PageIndex:=0;
>
> with Ibquery1 do begin
> Close;
> SQL.Clear;
> SQL.Add('select * from vcust ');
> open;
>
> append; //->insert대신 append명령을 써도 되는지요...(맨 끝줄에 자료추가시..)
> showmessage( 'DB그리드에 빈줄 생기고 업데이트준비완료...' );//->성공했구요...
> //insert;
> FieldByName('vno').Value := regno;
> FieldByName('vname').Value := regname;
> FieldByName('vtel').Value := regtel;
> FieldByName('v_jumin').Value := regjumin;
> FieldByName('v_nick').Value := regnick;
> FieldByName('post_no').Value := regpost;
> FieldByName('add1').Value := regadd1;
> FieldByName('add2').Value := regadd2;
> FieldByName('family').Value := regfamily;
> FieldByName('v_kind').Value := regkind;
> FieldByName('v_point').Value := regpoint;
> FieldByName('v_charge').Value := regcharge;
> FieldByName('Regist_date').Value := regdate;
> FieldByName('Last_visit').Value := regvisit;
> FieldByName('v_s_money').Value := regmoney;
> FieldByName('membership').Value := regmember;
> showmessage( 'DB그리드 맨 아랬줄에 POst할 값들이 나타났습니다.' );// ->자료가 추가중인것이 디비그리드에 보입니다. 역시성공...
> -------------------------------------여기까지는 잘 됩니다.
> Post;
> showmessage( 'Post에 성공 하였습니다.' );// -> 확실히 추가 되었습니다. 성공...
>
> if ibtransaction1.InTransaction then
> begin
> showmessage( '트랜잭션 진입!!' );//->여기까지도 OK!!
>
> try
> showmessage( 'Try모드 진입!!' ); //-> Post 명령을 REM 시키면 이줄까지는 도착합니다.
> applyupdates; // -> 이줄에서 다이나믹 에러, SQL Statement -104 어쩌구 하는 에러가 납니다.(IBQuery의 캐쉬모드는 True로 설정된 상태입니다.)
>
>
> showmessage( 'commit전단계!!' );
> ibtransaction1.commit;
> showmessage( '기록성공!!' );->기록성공까지는 가지못하는군요...
> Open;
> except
> ibtransaction1.rollback;
> end;
> end
> else
> showmessage('트랜잭션 모드가 아님!');
> end ;
>