FIREBIRD X VB.NET
Bom dia Meus amigos tudo bem
Pessoal eu não sou muito, Letrado em Banco de Dados Firebird
e um de nossos sistema usa essa banco de dados ,
na verdade gostei bastante dele Servidor bem Leve, pelo menos para esse APP que tem pouca coisa ne kkk
bom seguinte, a questão e que estou atualizando umas coisas do APP
e não achei como executar um Commint
uso o código a baixo
até esta funcionando, minha duvida e a seguinte
se eu não executei o Commint
em tese o registro esta na memoria do servidor e não salvo no HD correto?
então se algo acontecer(pico de energia ou qualquer outra coisa)
essas informações que não estão no Disco, seriam perdidas, e isso mesmo?
e se sim como faço para executar o Commint
não achei nada sobre isso na classe FbCommand
Pessoal eu não sou muito, Letrado em Banco de Dados Firebird
e um de nossos sistema usa essa banco de dados ,
na verdade gostei bastante dele Servidor bem Leve, pelo menos para esse APP que tem pouca coisa ne kkk
bom seguinte, a questão e que estou atualizando umas coisas do APP
e não achei como executar um Commint
uso o código a baixo
Private Sub Salva()
Try
If conexaoFB.State = 0 Then
Conec()
System.Threading.Thread.Sleep(500)
End If
Dim CMD As FbCommand
SQL = "Insert into pedidos(nome,dcad,dped,id_user,obs,status,PAGAMENTO,pgto_em)" &
"values(@nome,@dcad,@dped,@iduser,@obs,@status,@PAGAMENTO,@pgto_em)"
CMD = New FbCommand(SQL, conexaoFB)
CMD.Parameters.Add("@nome", FbDbType.Char).Value = TXT_nome.Text
If MSK_cadastro.Text = " / /" Then
CMD.Parameters.Add("@dcad", FbDbType.Date).Value = DBNull.Value
Else
CMD.Parameters.Add("@dcad", FbDbType.Date).Value = FormatDateTime(MSK_cadastro.Text, DateFormat.ShortDate)
End If
If DT_para.Text = "" Then
CMD.Parameters.Add("@dped", FbDbType.Date).Value = DBNull.Value
Else
CMD.Parameters.Add("@dped", FbDbType.Date).Value = FormatDateTime(DT_para.Text, DateFormat.ShortDate)
End If
CMD.Parameters.Add("@idUser", FbDbType.Char, 10).Value = User_ID
CMD.Parameters.Add("@obs", FbDbType.VarChar, 1000).Value = TXT_OBS.Text
CMD.Parameters.Add("@status", FbDbType.Char).Value = CMB_Status.Text
CMD.Parameters.Add("@PAGAMENTO", FbDbType.VarChar, 45).Value = IIf(TXT_PGTO.Text = "Selecione", "-", TXT_PGTO.Text.ToUpper)
CMD.Parameters.Add("@pgto_em", FbDbType.VarChar, 45).Value = IIf(CMB_PGTO.Text = "Selecione", "-", CMB_PGTO.Text.ToUpper)
CMD.ExecuteNonQuery()
CMD.Dispose()
PegaID()
Catch ex As Exception
ErroTry(ex.Message, "Atenção")
End Try
End Sub
até esta funcionando, minha duvida e a seguinte
se eu não executei o Commint
em tese o registro esta na memoria do servidor e não salvo no HD correto?
então se algo acontecer(pico de energia ou qualquer outra coisa)
essas informações que não estão no Disco, seriam perdidas, e isso mesmo?
e se sim como faço para executar o Commint
não achei nada sobre isso na classe FbCommand
Eu não faria desse modo, mas para resolver/sanar a sua dúvida, seria mais ou menos assim:
me desculpe agora que vi que é VB.net:
FbConnection connection = new FbConnection();
FbTransaction transaction = connection.BeginTransaction();
//metodos sql
transaction.Commit();
me desculpe agora que vi que é VB.net:
Dim connection As FbConnection = New FbConnection()
Dim transaction As FbTransaction = connection.BeginTransaction()
"métodos
transaction.Commit()
Citação::
Eu não faria desse modo, mas para resolver/sanar a sua dúvida, seria mais ou menos assim:
FbConnection connection = new FbConnection();
FbTransaction transaction = connection.BeginTransaction();
//metodos sql
transaction.Commit();
me desculpe agora que vi que é VB.net:
Dim connection As FbConnection = New FbConnection()
Dim transaction As FbTransaction = connection.BeginTransaction()
"métodos
transaction.Commit()
duvida
BEGIN.TRANSACTION não seria a primeira transação aberta?
to perguntando porque o sistema roda em rede com multiusuarios
se begin e a primeira pode acontecer de executar COMMINT na transação de outro usuario
não tem como Identificar a Transação em questão e executar o Commint nela?
Sim o Begin inicia, e o commit confirma, ja o rollback cancela. Mas isso fica preso na conexão, não é por usuário, tanto é que, quem inicia a transação, é a connection: Exemplo: Dim transaction As FbTransaction = connection.BeginTransaction()
Citação::
Sim o Begin inicia, e o commit confirma, ja o rollback cancela. Mas isso fica preso na conexão, não é por usuário, tanto é que, quem inicia a transação, é a connection: Exemplo: Dim transaction As FbTransaction = connection.BeginTransaction()
hum entendi
seguindo essa logica então e bom sempre fechar a conexão ao terminar de salvar o registro
Tópico encerrado , respostas não são mais permitidas