Firebird - Como realizar vários UPDATEs com um único comando?
Estou desenvolvendo uma aplicação em C# e utilizava MySql. Com o Mysql eu conseguia realizar a atualização de várias linhas de uma tabela ao mesmo tempo, em um único comando. No Firebird(2.5) isso não tá funcionando:
Ou seja, preciso atualizar a tabela, de uma única vez, em todas as linhas assinaladas pelo usuário.
O que tá faltando pra isso funcionar?
Alguém poderia me dar uma luz?
Obrigado.
string[] Documento;
int tamanho = dataGridView1.Rows.Count;
Documento = new string[tamanho];
for (linha = 0; linha <= tamanho - 1; linha++)
{
string check = dataGridView1.Rows[linha].Cells[0].Value.ToString();
Documento[linha] = dataGridView1.Rows[linha].Cells[1].Value.ToString();
if (check == 1)
{
string UPDATE = UPDATE tbl_crediario SET Data_Pgto_Mov = + dataPgto + , Situacao_Mov = 0 WHERE Cod_Mov = + Documento[linha]+ ; ;
BaixaEmValores += UPDATE;
}
}
Ou seja, preciso atualizar a tabela, de uma única vez, em todas as linhas assinaladas pelo usuário.
O que tá faltando pra isso funcionar?
Alguém poderia me dar uma luz?
Obrigado.
Igor Bernardes
Curtidas 0
Respostas
Joel Rodrigues
17/04/2012
Certo, e qual está sendo exatamente o problema?
Em que momento você executa esse comando?
Em que momento você executa esse comando?
GOSTEI 0
Anderson
17/04/2012
Antes de executar o comando, pega a instrução SQL já pronta, copia e cola em um utilitário (Flamerobin, IBExpert, ...) para checar a sintaxe e verificar o funcionamento. Revise também a parte de comitar os dados (fechar a transação).
Abraços,
Anderson:.
Abraços,
Anderson:.
GOSTEI 0
Igor Bernardes
17/04/2012
Bom, pessoal... descobri que o problema pode ser resolvido via C# mesmo, bastou colocar o comando UPDATE dentro do laço for. Deu tudo certo. Sei que não é o lugar certo para isso, pois o assunto aqui é o Firebird, mas segue abaixo o código em C# que utilizei, caso seja útil para alguém.
Abraço.
Abraço.
string[] Documento;
int tamanho = dataGridView1.Rows.Count;
Documento = new string[tamanho];
for (linha = 0; linha <= tamanho - 1; linha++)
{
string check = dataGridView1.Rows[linha].Cells[0].Value.ToString();
Documento[linha] = dataGridView1.Rows[linha].Cells[1].Value.ToString();
if (check == 1)
{
string UPDATE = UPDATE tbl_crediario SET Data_Pgto_Mov = @dataPgto, Situacao_Mov = 0 WHERE Cod_Mov = @doc;
Conexao conexao = new Conexao();
FbConnection conn = new FbConnection(conexao.Connstring);
conn.Open();
FbCommand comandoBaixa = new FbCommand(UPDATE, conn);
comandoBaixa.Parameters.AddWithValue(@dataPgto, dataPgto);
comandoBaixa.Parameters.AddWithValue(@doc, Documento[linha]);
comandoBaixa.ExecuteNonQuery();
conn.Close();
UPDATE = ;
}
}
GOSTEI 0