매일 질문만 하네요..죄송 합니다.
var
Sql_Update: string;
Bun_su_int: integer;
begin
if TCheckbox(Sender).Checked = true then
Bun_su_int := 1
Else
Bun_su_int := 0;
Sql_Update := 'UPDATE opt_ion set visible = :N1 WHERE caption = :N2 ';
try
Db1.BeginTrans;
Rs.SQL.Clear;
Rs.SQL.Text := Sql_Update;
Rs.Parameters.ParamValues['N1'] := Bun_su_int;
Rs.Parameters.ParamValues['N2'] := TCheckbox(Sender).caption;
Rs.ExecSQL;
Db1.CommitTrans;
except
Db1.RollBackTrans;
end;
이런 SQL을 Parameters.ParamValues를 쓰지 않는 방법이 없는지..
var
Sql_Update: string;
Bun_su_int: integer;
begin
if TCheckbox(Sender).Checked = true then
Bun_su_int := 1
Else
Bun_su_int := 0;
//숫자
Sql_Update := 'UPDATE opt_ion set visible = ''' +Bun_su_int+ '''
WHERE caption = ''' +TCheckbox(Sender).caption+ '''';
//문자
try
Db1.BeginTrans;
Rs.SQL.Clear;
Rs.SQL.Text := Sql_Update;
Rs.ExecSQL;
Db1.CommitTrans;
except
Db1.RollBackTrans;
end;
이런 방법으로 하니 애러가 나네요.
변수의 값을 인식하지 못하는 경우 같네요.
숫자형,날짜형,문자형등 SQL에서 변수를 쓰는 방법을 설명 해 주세요.
오늘도 답답한 초보가 드립니다.
> 매일 질문만 하네요..죄송 합니다.
>
> var
> Sql_Update: string;
> Bun_su_int: integer;
> begin
>
> if TCheckbox(Sender).Checked = true then
> Bun_su_int := 1
> Else
> Bun_su_int := 0;
>
> Sql_Update := 'UPDATE opt_ion set visible = :N1 WHERE caption = :N2 ';
>
> try
> Db1.BeginTrans;
> Rs.SQL.Clear;
> Rs.SQL.Text := Sql_Update;
> Rs.Parameters.ParamValues['N1'] := Bun_su_int;
> Rs.Parameters.ParamValues['N2'] := TCheckbox(Sender).caption;
> Rs.ExecSQL;
> Db1.CommitTrans;
> except
> Db1.RollBackTrans;
> end;
>
> 이런 SQL을 Parameters.ParamValues를 쓰지 않는 방법이 없는지..
>
> var
> Sql_Update: string;
> Bun_su_int: integer;
> begin
> if TCheckbox(Sender).Checked = true then
> Bun_su_int := 1
> Else
> Bun_su_int := 0;
> //숫자
> Sql_Update := 'UPDATE opt_ion set visible = ''' +Bun_su_int+ '''
> WHERE caption = ''' +TCheckbox(Sender).caption+ '''';
> //문자
==> 답변..^^;
먼저 데이터베이스의 visible과 caption 필드의 타입을 알아야합니다.
visible은 숫자(number)이고 caption은 스트링(alpha)이라면
Sql_Update := 'UPDATE opt_ion set visible = ' +strtoint(Bun_su_int)+ '
WHERE caption = ''' +TCheckbox(Sender).caption+ '''';
//문자
이렇게 하시면 될겁니다.
에러가 나는 이유는 문자열에 숫자를 더할려고하니깐 에러가 나는걸겁니다
거럼..20000
> try
> Db1.BeginTrans;
> Rs.SQL.Clear;
> Rs.SQL.Text := Sql_Update;
> Rs.ExecSQL;
> Db1.CommitTrans;
> except
> Db1.RollBackTrans;
> end;
>
> 이런 방법으로 하니 애러가 나네요.
>
> 변수의 값을 인식하지 못하는 경우 같네요.
>
> 숫자형,날짜형,문자형등 SQL에서 변수를 쓰는 방법을 설명 해 주세요.
>
> 오늘도 답답한 초보가 드립니다.