Página 1 de 1
Insert no SQL
Enviado: 07 Out 2023 17:45
por Eduardo Pinho
Boa noite, amigos,
Alguém sabe informar se o comando INSERT no Harbour/Sql (oSql:Execute(StringInsert)) retorna alguma coisa pra eu saber se o append foi bem sucedido? Se gravou tudo direitinho...
Obrigado.
Insert no SQL
Enviado: 07 Out 2023 18:05
por alxsts
Olá!
Você não informou qual é o banco de dados utilizado mas normalmente os SGBD aceitam a cláusula RETURNING.
Procure no Google "SQL INSERT RETURNING" apropriada para o teu banco.
Insert no SQL
Enviado: 07 Out 2023 18:28
por JoséQuintas
Pode fazer tratamento de erro.
Pelo que vi na internet, ficar querendo retorno quando não precisa é só consumir recursos à toa.
Código: Selecionar todos
lOk := .F.
BEGIN SEQUENCE WITH __BreakBlock
cn:Execute( cSQL, , AD_EXECUTE_NORECORDS )
lOk := .T.
ENDSEQUENCE
IF ! lOk
Errorsys_WriteErrorLog( "erro....." + Ltrim( Str( cn:errors(0):Number() ) ) + " " + cn:Erros(0):Description() + ;
hb_Eol() + "full SQL" + hb_Eol() + cSQL )
QUIT
ENDIF
Insert no SQL
Enviado: 08 Out 2023 12:53
por Eduardo Pinho
Obrigado pelas dicas Alxsts e Quintas..
Na verdade nao preciso tratar o erro, porque quando dá erro sei que nao gravou.
Meu problema é quando NÃO DÁ ERRO. Dá uma insegurança. Como não tenho muita experiencia com SQL, fico me perguntando se appendou mesmo. Aí achei que poderia ter uma resposta do sql server que o insert foi bem sucedido.
Mas acho que vou seguir em frente, se nao deu erro é porque deu tudo certo. Com append blank e replace eu não tinha essa neura, entao segue o baile.
Valeu.
Insert no SQL
Enviado: 09 Out 2023 12:32
por JoséQuintas
Eduardo Pinho escreveu:Meu problema é quando NÃO DÁ ERRO. Dá uma insegurança. Como não tenho muita experiencia com SQL, fico me perguntando se appendou mesmo. Aí achei que poderia ter uma resposta do sql server que o insert foi bem sucedido.
Mas acho que vou seguir em frente, se nao deu erro é porque deu tudo certo. Com append blank e replace eu não tinha essa neura, entao segue o baile.
Valeu.
Lembrei de uma situação.
Até que não está errado na pergunta.
Eu salvo XML de nota, e faço a conferência se salvou mesmo, e se está exatamente igual mandou salvar, antes de apagar o arquivo XML.
E não é que já deu problema nisso e sem mensagem de erro !!! Salvou o XML pela metade !!!
Lembrando que o XML pode ter até 8KB, e não tem tamanho fixo.
Diria que foi uma ocorrência no meio de 10.000, mas aconteceu.
Só fiz isso no XML, pra evitar problemas de codepage, e garantir que estava salvo corretamente, antes de apagar.
Já que pelo jeito está começando:
Dê atenção à codepage, confirme se tudo ok, e não deixe por conta do default do banco de dados, porque pode mudar entre versões.
Defina na tabela e no banco de dados qual é a codepage, e também em stored procedures e stored functions quando usar.
Insert no SQL
Enviado: 09 Out 2023 22:06
por Eduardo Pinho
Valeu, obrigado, Quintas!!