오후 1:45 2002-08-23
조경민 bro@shinbiro.com
TSQL 구문 여러개 날려주기
=============================================================

만일 INSERT , DELETE, UPDATE를 여러번 해야 하는 경우
DB 서버가 로컬이 아니면 네트워크 부하를 주게 된다.
이럴떄는 여러번의 INSERT 등의 실행문을 DB서버에게 한번에
전송하여 실행하게 하는 것이 좋다.
이를 Stored Procedure Batch Execute라고 한다.

실행시킬수있는 TSQL 구문은 MSSQL의 경우 128K정도라고 한다.


        CoInitialize(NULL);

        _ConnectionPtr conn;
        
        if( !fnADOConnectionOpen( conn, _T("Provider=sqloledb;Server=DB써버;database=데타베이수;User id=bro;password=암호"
                 ) )
        {
                TRACE( fnADOGetLastError() );
                return;
        }

        try
    {
        CString sSQL;
        sSQL.Format("\
BEGIN TRAN \
declare @sVal nvarchar(255) \
select @sVal = name from test where age = '1' \
INSERT INTO Test (name,age) VALUES (@sVal,'bb') \
INSERT INTO Test (name,age) VALUES ('bbb','cc') \
ROLLBACK \
");

        _bstr_t bsSQL(sSQL);
        
        conn->Execute( bsSQL, NULL, adExecuteNoRecords );
        }
    catch(_com_error &e)
    {
        // Notify the user of errors if any.
        // Pass a connection pointer accessed from the Connection.
        PrintProviderError(conn);
        PrintComError(e);
    }

        TRACE( fnADOGetLastError() );

'KB > MFC/Win32' 카테고리의 다른 글

URL캐쉬없애기  (0) 2004.03.19
UI 스레드로 날린 PostThreadMesage가 사라질때  (0) 2004.03.19
Winsock SNDBUF에 관하여  (0) 2004.03.19
regsvr32 -u와 같은 코드  (0) 2004.03.19
process 모니터링  (0) 2004.03.19

+ Recent posts