Q&A

  • sql 검색, 입력, 수정, 삭제에 대해..
sql 검색, 입력, 수정, 삭제에 대해 소스를 좀 부탁합니다..

저두 어느 정도는 아는데..먼가 안되는군요..

제가 하는걸 말씀 드리죠..

검색 에서는 콤보박스에서 검색하는게 조금 걸리구요...아이템설정이 잘못되서 그렇는지 잘안되네요..

수정에서는 db를 가져와서 수정을 하면 수정이 되어야 하는데 그게 db쪽에 저장이 잘안되구요..

입력은 자세히 소스를 부탁합니다..

삭제두...

제 소스를 올려드릴게요..







=========검색================

q1.close;

q1.sql.clear;

q1.sql.add(' select * from h_hakj,h_hakgwa ');

//hakbun, kname, grade, sex, gwaname from h_hakj,h_hakgwa ');

q1.sql.add(' where hakbun is not null ');

if hakbun1.text <> '' then q1.sql.add(' and hakbun like "'+hakbun1.text+'%" ');

if kname1.text <> '' then q1.sql.add(' and kname like "'+kname1.text+'%" ');

if grade1.itemindex > 0 then q1.sql.add(' and grade = "'+inttostr(grade1.itemindex)+'" ');

if sex.itemindex > 0 then q1.sql.add(' and sex = "'+sex.items[sex.itemindex]+'" ');

if gwaname1.itemindex > 0 then q1.sql.add(' and gwaname = "'+gwaname1.items[gwaname1.itemindex]+'" ');

q1.sql.add(' order by hakbun, kname, grade, sex, gwaname ');

q1.open;







================수정===================

q1.close;

q1.sql.clear;

q1.sql.add(' update h_hakj ');

q1.sql.add(' set hakbun = :hakbun ');

q1.sql.add(' where hakbun = "'+hakbun.text+'" ');

q1.ParamByName('hakbun').asstring := hakbun.text;





q1.execsql;

hakjf.close;





======================입력=======================

q1.close;

q1.sql.clear;

q1.sql.add(' insert into h_hakj ');

q1.sql.add(' (hakbun, kname, hname, ename,) ');

q1.sql.add(' values (:hakbun, :kname, :hname, :ename,) ');

q1.parambyname('hakbun').asstring := hakbun.text;

q1.parambyname('kname').asstring := kname.text;

q1.parambyname('hname').asstring := hname.text;

q1.parambyname('ename').asstring := ename.text;

q1.execsql;

showmessage('저장 완료');







==========================================================



대충 이런식입니다..

고수님들 부탁합니다.........



2  COMMENTS
  • Profile
    모름이 2001.04.20 00:23
    jcw wrote:

    > sql 검색, 입력, 수정, 삭제에 대해 소스를 좀 부탁합니다..

    > 저두 어느 정도는 아는데..먼가 안되는군요..

    > 제가 하는걸 말씀 드리죠..

    > 검색 에서는 콤보박스에서 검색하는게 조금 걸리구요...아이템설정이 잘못되서 그렇는지 잘안되네요..

    > 수정에서는 db를 가져와서 수정을 하면 수정이 되어야 하는데 그게 db쪽에 저장이 잘안되구요..

    > 입력은 자세히 소스를 부탁합니다..

    > 삭제두...

    > 제 소스를 올려드릴게요..

    >

    >

    >

    > =========검색================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' select * from h_hakj,h_hakgwa ');

    > //hakbun, kname, grade, sex, gwaname from h_hakj,h_hakgwa ');

    > q1.sql.add(' where hakbun is not null ');

    > if hakbun1.text <> '' then q1.sql.add(' and hakbun like "'+hakbun1.text+'%" ');

    > if kname1.text <> '' then q1.sql.add(' and kname like "'+kname1.text+'%" ');

    > if grade1.itemindex > 0 then q1.sql.add(' and grade = "'+inttostr(grade1.itemindex)+'" ');

    > if sex.itemindex > 0 then q1.sql.add(' and sex = "'+sex.items[sex.itemindex]+'" ');

    > if gwaname1.itemindex > 0 then q1.sql.add(' and gwaname = "'+gwaname1.items[gwaname1.itemindex]+'" ');

    > q1.sql.add(' order by hakbun, kname, grade, sex, gwaname ');

    > q1.open;

    >

    >

    >

    > ================수정===================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' update h_hakj ');

    > q1.sql.add(' set hakbun = :hakbun ');

    > q1.sql.add(' where hakbun = "'+hakbun.text+'" ');

    > q1.ParamByName('hakbun').asstring := hakbun.text;

    >

    >

    > q1.execsql;

    > hakjf.close;

    >

    >

    > ======================입력=======================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' insert into h_hakj ');

    > q1.sql.add(' (hakbun, kname, hname, ename,) ');

    > q1.sql.add(' values (:hakbun, :kname, :hname, :ename,) ');

    > q1.parambyname('hakbun').asstring := hakbun.text;

    > q1.parambyname('kname').asstring := kname.text;

    > q1.parambyname('hname').asstring := hname.text;

    > q1.parambyname('ename').asstring := ename.text;

    > q1.execsql;

    > showmessage('저장 완료');

    >

    >

    >

    > ==========================================================

    >

    > 대충 이런식입니다..

    > 고수님들 부탁합니다.........

    >

    님이 올리신 글 잘 보았습니다.

    제가 나름대로 소스를 편집하여 올릴께여.. 참고하세여..





    검색~~



    var

    str : string;



    begin

    str := 'select * from h_hakj,h_hakgwa where hakbun is not null ';

    if hakbun1.text <> '' then str := str + 'and hakbun1 = :ahakbun ';

    if hname1.text <> '' then str := str + 'and kname = :ahname ';

    if grade1.itemindex > 0 then str := str + 'and sex = :agrade ';

    if sex.itemindex > 0 then str := str + 'and sex = :asex ';

    if gwaname1.itemindex > 0 then str := str + 'and gwaname = :agwaname ';

    str := str + 'order by kakbun, kname, grade, sex, gwaname';



    memo.lines.text := str;

    // 쿼리를 돌리기전에 memo박스로

    쿼리 내용을 확인 해 보세여..자칫 띄어쓰기가 틀려서 error 날수도 있으니..



    with q1 do begin

    close;

    sql.clear;

    sql.add(str);

    if hakbun1.text <> '' then parambyname('ahakbun').asstring := hakbun1.text+'%';

    if hname1.text <> '' then parambyname('ahname').asstring := '%'+kname1.text+'%';

    if grade1.itemindex > 0 then parambyname('agrade').asstring := inttostr(grade1.itemindex);

    if sex.itemindex > 0 then parambyname('asex').asstring := sex.items[sex.itemindex];

    if sex.itemindex > 0 then parambyname('agwaname').asstring := gwaname.items[sex.itemindex];

    sql.open;

    end;

    end;





    수정~~



    var

    upstr : str;



    begin

    upstr := 'update h_hakj set hakbun = :ahakbun where hname = :ahname';

    with q1 do begin updateobject :=updatesql1; close;

    sql.clear;

    sql.add(upstr);

    parambyname('ahakbun').asstring := hakbun1.text;

    parambyname('ahname').asstring := hname1.text;

    execsql;

    q1.commits;

    end;

    end;



    입력, 삭제는 위 쿼리문을 잘 조합하여 만들면 될것입니다.

  • Profile
    송종석 2001.04.19 19:59
    1. 검색

    From절에 테이블이 두 개인데 Where절에 이를 연결할 조건이 없습니다.

    오류는 생기지 않더라도 검색속도 및 검색결과에 치명적인 손실이 발생할 수 있습니다.



    2. 수정

    치환할 값(hakbun.text), 치환될 값(hakbun.text) 모두 동일합니다.

    중간에 이를 바꿀 코드부분을 삽입하시기 바랍니다.

    SQL문을 이용하여 가져온 값을 수정하여 저장하려면 TUpdateSQL을 사용하시기 바랍니다.

    Order By를 이용한 것은 TQuery를 이용하여 수정할 수 없습니다.



    3. 입력

    SQL문에 필드 및 필드값 나열시 마지막의 콤마(,)를 제거하셔야 합니다.

    q1.sql.add(' (hakbun, kname, hname, ename) ');

    q1.sql.add(' values (:hakbun, :kname, :hname, :ename) ');





    jcw wrote:

    > sql 검색, 입력, 수정, 삭제에 대해 소스를 좀 부탁합니다..

    > 저두 어느 정도는 아는데..먼가 안되는군요..

    > 제가 하는걸 말씀 드리죠..

    > 검색 에서는 콤보박스에서 검색하는게 조금 걸리구요...아이템설정이 잘못되서 그렇는지 잘안되네요..

    > 수정에서는 db를 가져와서 수정을 하면 수정이 되어야 하는데 그게 db쪽에 저장이 잘안되구요..

    > 입력은 자세히 소스를 부탁합니다..

    > 삭제두...

    > 제 소스를 올려드릴게요..

    >

    >

    >

    > =========검색================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' select * from h_hakj,h_hakgwa ');

    > //hakbun, kname, grade, sex, gwaname from h_hakj,h_hakgwa ');

    > q1.sql.add(' where hakbun is not null ');

    > if hakbun1.text <> '' then q1.sql.add(' and hakbun like "'+hakbun1.text+'%" ');

    > if kname1.text <> '' then q1.sql.add(' and kname like "'+kname1.text+'%" ');

    > if grade1.itemindex > 0 then q1.sql.add(' and grade = "'+inttostr(grade1.itemindex)+'" ');

    > if sex.itemindex > 0 then q1.sql.add(' and sex = "'+sex.items[sex.itemindex]+'" ');

    > if gwaname1.itemindex > 0 then q1.sql.add(' and gwaname = "'+gwaname1.items[gwaname1.itemindex]+'" ');

    > q1.sql.add(' order by hakbun, kname, grade, sex, gwaname ');

    > q1.open;

    >

    >

    >

    > ================수정===================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' update h_hakj ');

    > q1.sql.add(' set hakbun = :hakbun ');

    > q1.sql.add(' where hakbun = "'+hakbun.text+'" ');

    > q1.ParamByName('hakbun').asstring := hakbun.text;

    >

    >

    > q1.execsql;

    > hakjf.close;

    >

    >

    > ======================입력=======================

    > q1.close;

    > q1.sql.clear;

    > q1.sql.add(' insert into h_hakj ');

    > q1.sql.add(' (hakbun, kname, hname, ename,) ');

    > q1.sql.add(' values (:hakbun, :kname, :hname, :ename,) ');

    > q1.parambyname('hakbun').asstring := hakbun.text;

    > q1.parambyname('kname').asstring := kname.text;

    > q1.parambyname('hname').asstring := hname.text;

    > q1.parambyname('ename').asstring := ename.text;

    > q1.execsql;

    > showmessage('저장 완료');

    >

    >

    >

    > ==========================================================

    >

    > 대충 이런식입니다..

    > 고수님들 부탁합니다.........

    >

    • 이희정
      2001.04.20 01:37
      초보델 wrote: > 누가 아시면 좀 알려주세요. 먼저.. 데이타베이스 컴퍼넌트가 두개가 필요하겠져?...
    • Mr. Larson
      2001.04.19 20:32
      권오정 wrote: > editbox에서 필요한data를 입력하고 바로 엔터키를 치면 > 어떤 함수를 call하려고 합...
    • 권오정
      2001.04.19 20:44
    • winsight
    • 2001.04.19 20:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.04.19 23:26
      안녕하세요. 최용일입니다. 첫번째 에러는 Power가 정의되지 않았다는 것입니다. 범위(scope)문제인데요...
    • Mr. Larson
      2001.04.19 20:31
      Power라는 함수는 x^y (x의 y승)을 구하는 수학함수입니다. 따라서 power 함수를 사용하시려면 uses 란...
    • 서경환
    • 2001.04.19 19:58
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 엑소
      2001.04.20 00:27
      서경환 wrote: > ADO를 이용하여 오라클에 접속합니다. > 접속은 이상없이 되는데 쿼리 실행 후 닫으면 ...
    • Mr. Larson
      2001.04.19 20:34
      서경환 wrote: > ADO를 이용하여 오라클에 접속합니다. > 접속은 이상없이 되는데 쿼리 실행 후 닫으면 ...
    • 서경환
      2001.04.19 20:45
      Mr. Larson wrote: > 서경환 wrote: > > ADO를 이용하여 오라클에 접속합니다. > > 접속은 이상없이 되...
    • Mr. Larson
      2001.04.19 22:05
      서경환 wrote: > Mr. Larson wrote: > > 서경환 wrote: > > > ADO를 이용하여 오라클에 접속합니다. > ...
    • 김동환
      2001.04.20 11:06
      Mr. Larson wrote: > 서경환 wrote: > > Mr. Larson wrote: > > > 서경환 wrote: > > > > ADO를 이용하...
    • 왕초보
    • 2001.04.19 19:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2001.04.23 21:03
      델파이 바이블이라는 책을 보시면 잘 나와있습니다.. 요즘 나오는 책에는 거의다.. ASP Component 만드...
    • 네오
    • 2001.04.19 18:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 감초
      2001.04.19 20:18
      try 샐행구문... except on e:exception do begin messagedlg(e.message, ...); en...
    • 이희정
      2001.04.19 20:16
      네오 wrote: > Error 처리하는 법 > > 델파이에서 DB 관련 작업을 하다 > Error 를 만났을 경우 > DB...
    • 네오
    • 2001.04.19 18:26
    • 0 COMMENTS
    • /
    • 0 LIKES
    • format
    • 2001.04.19 17:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 나그네
      2001.04.19 21:17
      format wrote: > format이라는 함수여....... > 세자리가 기본이구 한자리 입력받더라두 앞에 00을 채울...
    • 아폴론
      2001.04.19 18:49
      format wrote: > format이라는 함수여....... > 세자리가 기본이구 한자리 입력받더라두 앞에 00을 채울...
    • 하기
      2001.04.19 19:42
      Format('%3s', [String Value]); 맞나??? 아마 이렇게 하면 되지 않을까요??? 아폴론 wrote: > format...
    • pch
    • 2001.04.19 08:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2001.04.19 15:14
      Var R : Real; Begin R:= 12.23; R:= Ceil(R*10) / 10; End; 꿈꾸는 바보 류.. pch wro...
    • 김동환
      2001.04.20 11:13
      류종택 wrote: > Var > R : Real; > Begin > R:= 12.23; > R:= Ceil(R*10) / 10; > End; > ...
    • 류종택
      2001.04.20 20:44
      질문을 제대로 보지도 않고 답변하여 실수를.. 죄송!! 정정하여 주신분께는 감사 !! 김동환 wrote: ...
    • 수시아
    • 2001.04.19 07:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이희정
      2001.04.19 20:22
      수시아 wrote: > 안녕하세요...고수님들... > 델파이 5.0과 ms-access 2000으로 어플을 작성하고 있습니...
    • jcw
    • 2001.04.19 07:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 모름이
      2001.04.20 00:23
      jcw wrote: > sql 검색, 입력, 수정, 삭제에 대해 소스를 좀 부탁합니다.. > 저두 어느 정도는 아는데.....
    • 송종석
      2001.04.19 19:59
      1. 검색 From절에 테이블이 두 개인데 Where절에 이를 연결할 조건이 없습니다. 오류는 생기지 않더라도 ...
    • 누비
    • 2001.04.19 06:04
    • 0 COMMENTS
    • /
    • 0 LIKES
    • jun2
    • 2001.04.19 05:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ^-_-^
      2001.04.19 12:15
      yo` 자료실에 보면 업글된 콤포가 있습니다. 소스까지 있으니 참고하시지요!! :) 배경에 이미지 뿌...
    • 타락천사
      2001.04.19 06:35
      안녕하세여..타락임다..^^ 물론 가능합니다.. property StringIndex[AIndex] : string read GetSt...
    • 타락천사
      2001.04.19 06:38
      안녕하세여..타락임다..^^ procedure TForm1.Button2Click(Sender: TObject); var i : integer; ...
    • 나그네
      2001.04.19 07:47
      아직 인디에서 그런 기능은 본적이 없습니다. 서버에서는 타이머를 두고 수시로 접속여부를 체크하는 수 밖...