Erro -104 ao abrir o Form.
Boa Noite!
Estou usando Firebird 2.1 e o Visual Studio 2008 C# 3.0
no meu projeto tenho 2 combobox, que são preenchidas com os dados de duas tabelas, que estão vinculadas pelo ID-CLIENTES, ao iniciar o form a cobobox cbxClientes é carregada da seguinte maneira:
public frmLocacaoEquip()
{
InitializeComponent();
cbxClientes.DataSource = preencheClientes().Tables[0];
cbxClientes.DisplayMember = "nome_clientes";
cbxClientes.ValueMember = "id_clientes";
} private DataSet preencheClientes()
{
DataSet ds = new DataSet();
conFB = new ConexaoFB(strConexao);
conFB.iniciaDataAdpter("select ID_CLIENTES, NOME_CLIENTES from CLIENTES order by NOME_CLIENTES");
conFB.FbDA.Fill(ds, "CLIENTES");
conFB.fecharConexao();
return ds;
}
Quanto eu seleciono um cliente na cbxClientes a cbxObras é carregada com todas as obras do cliente selecionado:
private void cbxClientes_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
conFB = new ConexaoFB(strConexao);
string strqry = "SELECT ID_OBRAS, ID_CLIENTES, NOME_OBRAS from OBRAS WHERE ID_CLIENTES = " + cbxClientes.SelectedValue;
conFB.iniciaDataAdpter(strqry);
conFB.FbDA.Fill(dt);
cbxObras.DataSource = dt;
cbxObras.DisplayMember = "NOME_OBRAS";
cbxObras.ValueMember = "ID_OBRAS";
txtCodCli.Text = cbxClientes.SelectedValue.ToString();
txtCodObra.Text= cbxObras.SelectedValue.ToString();
cbxObras.Focus();
}
O problema é que quando executo o aplicatico em modo de depuração da um erro do firebird:
An exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll but was not handled in user code
Additional information: Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 84
. Diz que o Token desconhecido é um .(ponto), mas não tem nenhum ponto na linha de comando SQL Se eu executo o aplicativo direto pelo arquivo executável não dá erro nenhum. alguem ai tem como dar uma ajuda?
Estou usando Firebird 2.1 e o Visual Studio 2008 C# 3.0
no meu projeto tenho 2 combobox, que são preenchidas com os dados de duas tabelas, que estão vinculadas pelo ID-CLIENTES, ao iniciar o form a cobobox cbxClientes é carregada da seguinte maneira:
public frmLocacaoEquip()
{
InitializeComponent();
cbxClientes.DataSource = preencheClientes().Tables[0];
cbxClientes.DisplayMember = "nome_clientes";
cbxClientes.ValueMember = "id_clientes";
} private DataSet preencheClientes()
{
DataSet ds = new DataSet();
conFB = new ConexaoFB(strConexao);
conFB.iniciaDataAdpter("select ID_CLIENTES, NOME_CLIENTES from CLIENTES order by NOME_CLIENTES");
conFB.FbDA.Fill(ds, "CLIENTES");
conFB.fecharConexao();
return ds;
}
Quanto eu seleciono um cliente na cbxClientes a cbxObras é carregada com todas as obras do cliente selecionado:
private void cbxClientes_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
conFB = new ConexaoFB(strConexao);
string strqry = "SELECT ID_OBRAS, ID_CLIENTES, NOME_OBRAS from OBRAS WHERE ID_CLIENTES = " + cbxClientes.SelectedValue;
conFB.iniciaDataAdpter(strqry);
conFB.FbDA.Fill(dt);
cbxObras.DataSource = dt;
cbxObras.DisplayMember = "NOME_OBRAS";
cbxObras.ValueMember = "ID_OBRAS";
txtCodCli.Text = cbxClientes.SelectedValue.ToString();
txtCodObra.Text= cbxObras.SelectedValue.ToString();
cbxObras.Focus();
}
O problema é que quando executo o aplicatico em modo de depuração da um erro do firebird:
An exception of type 'FirebirdSql.Data.FirebirdClient.FbException' occurred in FirebirdSql.Data.FirebirdClient.dll but was not handled in user code
Additional information: Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 84
. Diz que o Token desconhecido é um .(ponto), mas não tem nenhum ponto na linha de comando SQL Se eu executo o aplicativo direto pelo arquivo executável não dá erro nenhum. alguem ai tem como dar uma ajuda?
Celso Souza
Curtidas 0
Respostas
Thiago Santana
28/01/2010
Pegue o SQL que está sendo gerado através da sua aplicação e cole no ibexpert e veja onde que é erro!
Assim será mais fácil de você descobrir qual é o erro... Pode ser um erro de conversão..
Espero ter ajudado!
GOSTEI 0
Celso Souza
28/01/2010
Mas o Firebird não vai aceitar isso:
SELECT ID_OBRAS, ID_CLIENTES, NOME_OBRAS from OBRAS WHERE ID_CLIENTES = "+ cbxClientes.SelectedValue
GOSTEI 0
Thiago Santana
28/01/2010
Celso mas vc poderá fazer assim para testar!
SELECT ID_OBRAS, ID_CLIENTES, NOME_OBRAS from OBRAS WHERE ID_CLIENTES = Informe o mesmo valor que está no seu cbxClientes.SelectedValue;
Esta é a consulta SQL que está sendo gerada? Se for está um pouco estranha! Se esse seu cbxClientes for um combobox.. Acho que vc deveria utilizar assim: ' SELECT ID_OBRAS, ID_CLIENTES, NOME_OBRAS from OBRAS WHERE ID_CLIENTES = ' + cbxClientes.text;
Teste isso aí!
Espero ter ajudado!
AbraçoO
AbraçoO
GOSTEI 0