계속 질문드려서 죄송합니다..ㅠㅠ
알다가도 모르고 해결됐다가 싶다가도 안되고.. 알쏭달쏭하네요,.ㅠ.ㅠ
첨부그림처럼
검색 버튼을 누르면 edit들에 값이 들어가야 합니다..
말은 쉬운데 코딩하기가 어렵네요.ㅠ.ㅠ
procedure Tengeneform.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Text:='select * from @tablename'+
'where Attribute = @Attribute';
Query1.SQL.Text:=StringReplace(Query1.SQL.Text,'@tablename', 'data', []);
Query1.SQL.Text:=StringReplace(Query1.SQL.Text,'@Attribute', 'CRS', []);
Query1.Open;
// 여기 까지는 결과를 조회하구요.
if Not(Query1.Eof) then
// 여기서 Query의 값이 있는지 확인을 하고 값이 있다면 if 절 내를 실행
//(Eof의 의미는 Query 값의 끝인지를 확인하는 함수)
begin
Edit1.Text := Query1.FieldByName('필드1').AsString;
//필드명 1인 값을 읽어서 Edit1 에 넣어준다는 의미임
********* 여기가 이해가 안갑니다.....
필드명 1인 값이 어떤 걸 뜻하는지..... 위에 조회한 내용이 들어가야 하지 않는 건지....
그래야 edit1에 CRS라는게 입력되지 않나요?? 아닌가?
조회한 내용이 'data라는 테이블에서 Attribute가 CRS인걸 찾아라' 이건데...
****************
if Edit1.Text <> '' then
Edit1.Text := '바보1'
else Edit1.Text := '천재';
***********
이 부분은 이해가 가는데요~~
Edit1.Text := Query1.FieldByName('필드1').AsString 이거랑 관계가 있는 건가요??
end //첫번
그래도 초보가 보시면 조금 이해하기 어려울 듯 해서 다시 답변을 답니다.
일단 조회의 의미가 어떤 의미인지를 설명을 드린 거구요. 지금 쿼리로는 Data 라는 Table에서
Attribute 가 CRS 인 값을 조회해서 그 값이 있으면 각 Edit에 값을 넣어주시는 거 같은데요.
그렇다면 제가 data table의 filed name 이 어떤 것이 있는지 모르니 일단 가정을 해서 코딩을 해 보면
data 라는 table에 만약 engine_name 이라는 String Field 와 engine_maker 라는 역시 string
field 와 그리고 마지막 engine_power 라는 Float 값을 가지는 Field 가 있다면 조회 버튼이 눌러 졌을때 값이 있다면 그 값을 이렇게 뿌려 주겠지요.
engname.Text := Query1.FieldByName('engine_name').AsString;
engmaker.Text := Query1.FieldByName('engine_maker').AsString;
engpower.Text := FormatFloat('0.00',Query1.FieldByName('engine_power').AsFloat);
자 이런 식으로 소스에서는 어디에 어떤 값을 넣어라 라구 지정을 해야 겠지요. 만약 Database Edit를 쓰셨다면 Table의 Field를 바로 연결해 주시면 되지만 Edit 를 주로 많이 사용하니 대부분 이런식으로 Coding을 만들어 갑니다. 이해가 되셨나요.
위의 if 절의 의미는 님께서 특정한 값이 있으면 어떤 caption이나 Text를 바꾸신다고 해서 넣었던 건데요.
만약 Edit1.Text 의 값에 Null 즉 Blank 값이 아니라면 Edit1.Text 값을 '바보' 라는 값으로 바꾼다는 건데
Edit1.Text를 조회해서 Edit1.Text를 바꾼다는 것이 조금 이상하지요. 조건절 말고 변경하는 곳에 버튼이나 다른 것의 Caption을 바꾸는 것으로 변경해 보시면 이해가 가실 겁니다.
지금 현재 Database의 설정을 보면 Alias를 선택하신 것이 아니라 Database에서 MSSQL을 선택을 하셨네요. 그럼 설정이 조금 까다로와 집니다. 전에 BDE 설정에서 MSSQL 의 ODBC 설정이 성공을 하셨다면 아마 현재 님의 BDE 상에 그 ODBC 설정 Alias 가 남아 있을 겁니다. 중간의 Alias 항목에서 그 성공한 설정 이름을 선택하시고 Dafault 버튼을 누르시면 BDE을 자동으로 가져 옵니다. 그 가져온 설정을 가지고 조건을 조금 조정(유저명 및 Password 설정등등)을 만져주시고 저장해 주시구요. 그리고 나와서 Object Inspepector에서 Database Name을 설정해 주시구요. 그것을 Query와 연결해 주세요. 그럼...
또 궁금한점 있으시면 질문주세요. 딴 이름은 빼구..^^