Rodrigo,

Se vc estiver utilizando sessão, dentro da sessão o autocommit é desligado por default, e vc precisa confirmar a transação com o SqlCommitSession. Fora da sessão o autocommit é ligado por padrão. Veja exemplo do manual:

Set SqlDatabase = 'oradb'
Set SqlUser = 'sysadm'
Set SqlPassword = 'sysadm'
Call SqlCreateSession(hSession, "Provider=OraOLEDB.Oracle;")
Call SqlCreateStatement(hSession, hSql)
If SqlPrepareAndExecute(hSql, 'INSERT INTO INVOICE_MASTER
(INVOICE_ID, CLIENT_NAME, INVOICE_DATE) VALUES
(next_invoice_id, i_client_name, i_invoice_date)')
 Call SqlCommitSession(hSession)
Else
 Call SqlRollbackSession(hSession)
Call SqlFreeSession(hSession)


Sds,
Erasmo

--

Erasmo Bispo de Oliveira Junior
Gerente de Pesquisa e Desenvolvimento
Softway - Softcomex Informática Ltda.
Pabx:   +55 (19) 3739.9200
Direto: +55 (19) 3739.9361
Fax:    +55 (19) 3739.9240
e-mail: [EMAIL PROTECTED]
web:    http://www.softcomex.com.br



Rodrigo Scarano - Target Sistemas wrote:

Ricardo,

Aqui utilizamos a função SqlSetParameter( hSql, DBP_AUTOCOMMIT, TRUE, STRING_Null ) com o SQLServer (ODBC) e funciona corretamente.

Sds, Rodrigo.

-----Mensagem original-----
*De:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *Em nome de *Ricardo Gomes
*Enviada em:* quarta-feira, 13 de junho de 2007 12:02
*Para:* sqlwin@virtualand.net
*Assunto:* Re: [sqlwin] conectando com Oracle usando OLEDB

Pessoal, consegui fazer a conexão com oracle usando OLEDB. Agora, como faço para desligar o autocommit quando faço conexão via OLEDB? Usei a função SqlSetParameter e não funcionou...

Obrigado.

Ricardo.

    ----- Original Message -----

    *From:* Ricardo Gomes <mailto:[EMAIL PROTECTED]>

    *To:* sqlwin@virtualand.net <mailto:sqlwin@virtualand.net>

    *Sent:* Wednesday, June 13, 2007 11:14 AM

    *Subject:* [sqlwin] conectando com Oracle usando OLEDB

    Alguém pode, por gentileza, me passar um exemplo de string de
    conexão informada no segundo parâmetro da função SqlCreateSession
    para conectar com Oracle?

    Obrigado.

    Ricardo.

        ----- Original Message -----

        *From:* José Augusto Sabino de Oliveira
        <mailto:[EMAIL PROTECTED]>

        *To:* sqlwin@virtualand.net <mailto:sqlwin@virtualand.net>

        *Sent:* Wednesday, June 13, 2007 10:27 AM

        *Subject:* [sqlwin] RES: [sqlwin] Re: [sqlwin] RES: [sqlwin]
        chamando função SqlCommit quando conectado em Oracle

        De uma olhada se existe essa função na sua versão:
        SqlConnectTransaction( Sql_Handle, String )

        O SqlCommit funciona dessa forma:

        Commits all of the SQL transaction's cursors that are
        connected to the same database.

        Note: To prevent destroying a cursor's result set when a
        COMMIT is performed, turn on cursor context preservation by
        calling SqlSetParameter and setting the DBP_PRESERVE parameter
        to TRUE.

        -----Mensagem original-----
        *De:* [EMAIL PROTECTED]
        [mailto:[EMAIL PROTECTED] *Em nome de *Ricardo Gomes
        *Enviada em:* quarta-feira, 13 de junho de 2007 09:08
        *Para:* sqlwin@virtualand.net
        *Assunto:* [sqlwin] Re: [sqlwin] RES: [sqlwin] chamando função
        SqlCommit quando conectado em Oracle

        José Augusto, acho que essas funções não existem no CTD 1.5.1,
        que é a versão que uso atualmente...

        Mais alguma outra idéia?

        Obrigado.

        Ricardo.

            ----- Original Message -----

            *From:* José Augusto Sabino de Oliveira
            <mailto:[EMAIL PROTECTED]>

            *To:* sqlwin@virtualand.net <mailto:sqlwin@virtualand.net>

            *Sent:* Wednesday, June 13, 2007 7:01 AM

            *Subject:* [sqlwin] RES: [sqlwin] chamando função
            SqlCommit quando conectado em Oracle

            De uma olhada nessas funções: SqlCreateSession e
            SqlCommitSession...

            -----Mensagem original-----
            *De:* [EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]>
            [mailto:[EMAIL PROTECTED] *Em nome de *Ricardo
            Gomes
            *Enviada em:* terça-feira, 12 de junho de 2007 16:29
            *Para:* sqlwin@virtualand.net <mailto:sqlwin@virtualand.net>
            *Assunto:* [sqlwin] chamando função SqlCommit quando
            conectado em Oracle

            Pessoal, percebi um comportamento indesejado ao utilizar
            SqlCommit em minha aplicação quando conectado a banco de
            dados Oracle. Quando chamo a função SqlCommit, passando um
            handle como parâmetro, espero que sejam "commitados" todos
            os comandos executados sobre esse handle. Diferentemente
            do que acontece quando conectado a SQLSERVER, por exemplo,
quando chamo o SqlCommit TODOS OS HANDLES CONECTADOS PELA MINHA APLICAÇÃO SÃO "COMMITADOS", ao invés de "commitar" o
            handle passado como parâmetro. Esse comportamento tem como
            ser alterado? O que posso fazer?

            Obrigado.

            Ricardo.



Responder a