Primeiro qual o erro que esta dando !
Segundo econtrei uma coisa n�o recomenda no seu codigo.
Pelo que entendi vc esta pegando o valor maximo do registro na tabela e somando + 1.. so que vc esta fazendo isso na aplica��o... tornando possivel que duas pessoas efetuem o selecet max ao mesmo tempo e venha o mesmo valor.
Assim dois clientes tentaram enviar o mesmo valor para o banco podendo da erro de primary key.
Espero ter ajudado.
Leandro Neves
On 5/13/05, [EMAIL PROTECTED] <
[EMAIL PROTECTED]> wrote:
Amigos,
estou com um problema no sistema, quando dois usu�rios baixam um cheque ao mesmo
tempo. Estou utilizando o banco SQL SERVER.
Se algu�m tiver um exemplo, eu ficaria grato.
Vou colocar o c�digo q estou utilizando, pois algu�m pode descobrir o q estou
fazendo de errado ou se est� faltando alguma coisa.
O c�digo � o seguinte:
######################################################################
Set sSql = '
DECLARE C_MAXIMO CURSOR FOR
SELECT maximo
FROM ' || sTabela || ' FOR UPDATE
OPEN C_MAXIMO
FETCH NEXT FROM C_MAXIMO '
Call SqlPrepareAndExecute( hSqlGeral, sSql )
Set sSql = 'Select maximo from ' || sTabela || ' into :nMax'
Call SqlPrepareAndExecute( hSqlGeral, sSql )
Call SqlFetchNext( hSqlGeral, nErro )
Set sSql = '
BEGIN
UPDATE ' || sTabela || '
SET maximo = maximo + 1
END
CLOSE C_MAXIMO
DEALLOCATE C_MAXIMO '
Call SqlPrepareAndExecute( hSqlGeral, sSql )
################################################################
Grato.
==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================
