Insert no SQL

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Eduardo Pinho
Colaborador
Colaborador
Mensagens: 72
Registrado em: 13 Jun 2014 19:30
Localização: Niteroi

Insert no SQL

Mensagem 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.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Insert no SQL

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Insert no SQL

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Eduardo Pinho
Colaborador
Colaborador
Mensagens: 72
Registrado em: 13 Jun 2014 19:30
Localização: Niteroi

Insert no SQL

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Insert no SQL

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Eduardo Pinho
Colaborador
Colaborador
Mensagens: 72
Registrado em: 13 Jun 2014 19:30
Localização: Niteroi

Insert no SQL

Mensagem por Eduardo Pinho »

Valeu, obrigado, Quintas!!
Responder