FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[1388] Re:Re:...[질문] IBDataSet의 InsertSQL
Matthew [roky009] 1566 읽음    2004-12-02 03:58
감사합니다.
그런데
Execute()는 IBDataSet의 함수가 아니라고 하는군요
ExecSQL()을 쓰니까 Open() 을 먼저 해야 된다구 하고
Open() 담에 쓰니까 Select 문에만 쓰이는 거라구 에러를 줍니다.
뭐가뭔지... 통...
한 번 만 더 도와주세여

MAX()는 store procedure에서 쓸 수 있다는군요(borland TeamB)
다시한번 감사드립니다.


마쿠 님이 쓰신 글 :
: Open은 결과값이 있는 쿼리를 날릴때, 즉 Select 문 같은 것을 날릴때 호출합니다.
: Insert문 같은 결과값이 없는 쿼리를 날릴 때는 Execute() 를 호출해야합니다.
:
: 그리고 Append는 Select된 델타 데이터(메모리에 저장된 가상 데이터)셋에 Insert (append)할때 사용하는
: 거라 지금 님의 코딩엔 의미가 없다고 생각되네요
:
: 님이 쓰신쿼리는 두가지 방법으로 할 수 있는데
:
: 첫번째는================================
:
: IBDataSet1->Close();
: IBDataSet1->InsertSQL->Clear();
: IBDataSet1->InsertSQL->Text = "Insert into table1 (a, b,,,, 등) values (1,2,,,,등)";
: IBDataSet1->Execute();
:
: 두번째는================================
:
: IBDataSet1->Close();
: IBDataSet1->InsertSQL->Clear();
: IBDataSet1->InsertSQL->Text = "Select * from table1";
: IBDataSet1->Prepare();
: IBDataSet1->Open();
: IBDataSet1->Append();
: // Append 후 데이터 콘트롤 들을 통해 값을 입력받는다던가
: // IBDataSet1->FieldByName('a')->AsString = '1';
: // IBDataSet1->FieldByName('b')->AsString = '2';
: // IBDataSet1->FieldByName('등')->AsString = '등';
: // .....
: IBDataSet1->Post();
: IBDataSet1->ApplyUpdates(); // <- 실제 데이터 베이스로 적용합니다.
: ========================================
:
: 할 수 있겠네요...( 아마 님이 의도하신건 첫번째 방법이라 보입니다.)
:
: 그리고 한가지 더 Max함수 쓸 수 있습니다.
:
:
: Matthew 님이 쓰신 글 :
: : 안냐세요..
: : IBTable을 쓰니까 넘 느려서... 바꿀려구 하는 데...
: : 속도는 좀 빨라졌어요 근데...
: : IBDataSet을 이용해서 InsertSQL을 쓸려니 에러가 계속 남니다.
: : isql에서 똑 같이 쓰면 아무런 문제 없이 입력 되는데..
: : 코드는 아래와 같구.. (Text 문은 간략하게 줄여서 보였음)
: : Post()에서 문제가 생기는 데...
: : 아이디어 있으신 분 도움을 부탁드립니다.
: : 감쏴...
: :    IBDataSet1->Close();
: :    IBDataSet1->InsertSQL->Clear();
: :    IBDataSet1->InsertSQL->Text = "Insert into table1 (a, b,,,, 등) values (1,2,,,,등)";
: :    IBDataSet1->Prepare();
: :    IBDataSet1->Open();
: :    IBDataSet1->Append();
: :    IBDataSet1->Post();
: :
: : 한가지 더.
: : SelectSQl에서는 "Select MAX(DUM) .." 과 같이 MAX 함수는 못 써나요?

+ -

관련 글 리스트
1370 ...[질문] IBDataSet의 InsertSQL Matthew 1477 2004/11/25
1380     Re:...[질문] IBDataSet의 InsertSQL 마쿠 1468 2004/12/01
1388         Re:Re:...[질문] IBDataSet의 InsertSQL Matthew 1566 2004/12/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.