DBGrid에서 특정 row를 더블클릭해서 얻은....
DBGrid에서 특정 row를 더블클릭해서 얻은 데이타를
업데이트하고 싶습니다.(물론 DB에 반영되도록)
예를 들어... 홍길동의 레코드를 추출하여 홍길동의 주소를
다른 주소로 업데이트하여 디비에 반영하는 것이지요..
(업데이트는 버튼 클릭으로...)
개념적으로는 당연히 되어야 하는데 잘 안되는군요...
현재 포커싱된 레코드를 인식하는 것부터
UpdateSQL 에 포커싱된 레코드의 특정 필드를 지정해주는 것등
모르는 것이 많습니다.
아시는 분들의 지도를 부탁드립니다. 그럼 이만...
>
> DBGrid에서 특정 row를 더블클릭해서 얻은....
> DBGrid에서 특정 row를 더블클릭해서 얻은 데이타를
> 업데이트하고 싶습니다.(물론 DB에 반영되도록)
>
>
> 예를 들어... 홍길동의 레코드를 추출하여 홍길동의 주소를
> 다른 주소로 업데이트하여 디비에 반영하는 것이지요..
> (업데이트는 버튼 클릭으로...)
>
>
> 개념적으로는 당연히 되어야 하는데 잘 안되는군요...
> 현재 포커싱된 레코드를 인식하는 것부터
> UpdateSQL 에 포커싱된 레코드의 특정 필드를 지정해주는 것등
> 모르는 것이 많습니다.
>
> 아시는 분들의 지도를 부탁드립니다. 그럼 이만...
>
안녕하세요?
아래는 Query로 Update하는 일반적인 방법입니다.
보시고 참조되시기 바랍니다.
UpdateSql의 사용법은 델파이 헬퍼 팁/강좌를 참조하세요.
그럼.. 즐거운 프로그래밍~
Query.Sql.Add('Update 테이블명 Set 필드명 = :파라메타,,,, Where 필드명 =: 파라메타');
Query.ParamByName('파라메타').As종류 := 받을곳
Query.ExecSql;
먼저 Query,와 DataSource를 하나씩 올려 놓고 연결하고,
이벤트에 코딩으로 처리되는데,
begin
Query.Close;
Query.Sql.Clear;
Query.Sql.Add('UpDate Friend '); //테이블명//
Query.Sql.Add('Set Name = :Name, Phone = :Phone, Bipi = :Bipi , Address = :Address,
Birth = :Birth, ZipCode = :ZipCode, Etc = :Etc '); //필드선정//
Query.Sql.Add('Where Name = :Name'); //조건설정//
Query.ParambyName('Name').AsString := Edit1.Text; //받는 곳 설정//
Query.ParambyName('Phone').AsString := Edit2.Text;
Query.ParambyName('Bipi').AsString := Edit3.Text;
Query.ParambyName('Birth').AsDateTime := DateTimePicker1.Date;
Query.ParambyName('ZipCode').AsString := Edit4.Text;
Query.ParambyName('Address').AsString := Edit5.Text;
Query.ParambyName('Etc').AsString := Edit6.Text;
Query.ExecSQL;
Query.Close;
Query.Open;
End;
이 외에 Insert Query와 같이 데이타모듈로 처리하는 방법이 있다.
데이타 모듈에 Query,와 DataSource를 하나씩 올려 놓고 연결하고 Query의 퍼로퍼티중 Sql에
UpDate Friend
Set Name = :Name, Phone = :Phone, Bipi = :Bipi , Address = :Address, Birth = :Birth, ZipCode = :ZipCode, Etc = :Etc
Where Name = :Name 적고
이벤트에
begin
dm1.qrUpdate.Close;
dm1.qrUpdate.ParambyName('Name').AsString := Edit1.Text;
dm1.qrUpdate.ParambyName('Phone').AsString := Edit2.Text;
dm1.qrUpdate.ParambyName('Bipi').AsString := Edit3.Text;
dm1.qrUpdate.ParambyName('Birth').AsDateTime := DateTimePicker1.Date;
dm1.qrUpdate.ParambyName('ZipCode').AsString := Edit4.Text;
dm1.qrUpdate.ParambyName('Address').AsString := Edit5.Text;
dm1.qrUpdate.ParambyName('Etc').AsString := Edit6.Text;
dm1.qrUpdate.ExecSQL;
dm1.Query1.Close;
dm1.Query1.Open;
End;
위의 경우 모듈이름은 dm1이고 Query 이름은 qrUpdate이고 Query1은 일반적인 Query이다.