저의 질문의 3가지 입니다.
첫번째로...
InterBase와 ISQL을 이용해서 프로그램 하구있구여.
IBDataBase, IBTransaction컴퍼넌트를 이용해 서버의 데이타베이스에 접속하고,
DBGrid에 DataSource와 IBDataSet을 연결해서 데이타의 모습을
화면에 계속 보여주는 상탭니다..
그런데 제가 앞선 질문에서 말했듯이, Primary Key를 사용하지 않고
데이터를 선택적으로(즉, DBGrid상에서 레코드를 선택해서 선택한) 레코드를 삭제, 혹은
갱신 작업을 하고 싶습니다.
ex> Name Phone
홍길동 123-4567
홍서범 234-6789 <---- 동명이인인 이 데이터만을 수정, 삭제
김길동 234-3498
홍서범 767-0009
결과적으로 저는 TTable 컴퍼넌트 처럼 자유로운 레코드 이동과 논리적으로 이동된
레코드에서의 작업을 하고 싶은겁니다.
델파이를 애용하시는 여러분의 고귀한 말씀을 기다립니다.
두번째는...
Refresh에 관한 질문입니다.
예를 들어 두개의 테이블을 Join을 통해서 연계시켜 Grid에 보여주는 상태에서,
한쪽의 테이블을 수정했을 경우에, Grid에 Refresh 시켜주는 작업을 이제까지는
SQL컴퍼넌트를 CLOSE, OPEN시켜 주는 작업을 했었거든여...
그런데 그게 다시원래의 커서 위치도 찾아줘야 하구여...좀 귀찮아서여...다른 좋은
방법을 혹시 알고계시다면 좀 일러주시면 감사하겠습니다.
세번째는여...
Query컴퍼넌트의 SQL프로퍼티에 기입할때인데요...대부분의 경우는 Param을
SELECT aaa, bbb from ccc
WHERE aaa = :aaa <---- 이렇게 사용하는데여...
만일 Join한 문장에서는 어떻게 써야할지 모르겠네여...
ex> SELECT A.aaa, A.bbb, B.aaa, B.bbb From AAA A
LEFT OUTER JOIN BBB B On A.aaa = B.aaa
WHERE A.aaa = :A.aaa <-----이건 에러가 생기네여...ㅠ.ㅠ
질문이 넘 많은건지 모르겠네여...고귀한 답변 기다립니다
> 저의 질문의 2가지 입니다.
>
> 첫번째로...
> InterBase와 ISQL을 이용해서 프로그램 하구있구여.
> IBDataBase, IBTransaction컴퍼넌트를 이용해 서버의 데이타베이스에 접속하고,
> DBGrid에 DataSource와 IBDataSet을 연결해서 데이타의 모습을
> 화면에 계속 보여주는 상탭니다..
>
> 그런데 제가 앞선 질문에서 말했듯이, Primary Key를 사용하지 않고
> 데이터를 선택적으로(즉, DBGrid상에서 레코드를 선택해서 선택한) 레코드를 삭제, 혹은
> 갱신 작업을 하고 싶습니다.
>
> ex> Name Phone
> 홍길동 123-4567
> 홍서범 234-6789 <---- 동명이인인 이 데이터만을 수정, 삭제
> 김길동 234-3498
> 홍서범 767-0009
>
> 결과적으로 저는 TTable 컴퍼넌트 처럼 자유로운 레코드 이동과 논리적으로 이동된
> 레코드에서의 작업을 하고 싶은겁니다.
>
> 델파이를 애용하시는 여러분의 고귀한 말씀을 기다립니다.
인터베이스 구조상 rdb$db_key 라는 히든 필드가 있는데..
프라이머리 키가 없을땐.. 이것이 그역활을 합니다.
델파이 기본 인터베이스 컴포넌트가없어서 테스트를 못해보겠는데..
위의 작업을 하실수있읍니다.
>
> 두번째는...
>
> Refresh에 관한 질문입니다.
>
> 예를 들어 두개의 테이블을 Join을 통해서 연계시켜 Grid에 보여주는 상태에서,
> 한쪽의 테이블을 수정했을 경우에, Grid에 Refresh 시켜주는 작업을 이제까지는
> SQL컴퍼넌트를 CLOSE, OPEN시켜 주는 작업을 했었거든여...
>
> 그런데 그게 다시원래의 커서 위치도 찾아줘야 하구여...좀 귀찮아서여...다른 좋은
> 방법을 혹시 알고계시다면 좀 일러주시면 감사하겠습니다.
DataSet.Refresh 가..안먹습니까 ?