Russim 0 Denunciar post Postado Janeiro 22, 2009 bom pessoal estou desenvolvendo um pequeno sistema em delphi, mais para aprender mesmo, pois nao possuo muito conhecimento em delphi uma parte do sistema é o cadastro de empresa quando tento inserir o cadastro no bando de dados (access) apresenta o seguinte erro: missing sql property o código é o seguinte: Function Fun_InsereCadEmpresa(codEmpresa, cgcMf, inscEst, nomeContrib, municipio, uf, fax, dataInicial, dataFinal, codConvenio, codOperacao, codFinalidade, logradouro, numero, complemento, bairro, cep, nomeContato, telefone : String) : String; begin try try Form1.qryCadEmpresa.Close; Form1.qryCadEmpresa.Open; Form1.qryCadEmpresa.Insert; Form1.qryCadEmpresa.ClearFields; Form1.qryCadEmpresa.SQL.Add('INSERT INTO tcfDadosEmpresa (codEmpresa, cgcMf,'); Form1.qryCadEmpresa.SQL.Add('inscEst, nomeContrib, municipio, uf, fax, dataInicial,'); Form1.qryCadEmpresa.SQL.Add('dataFinal, codConvenio, codOperacao, codFinalidade,'); Form1.qryCadEmpresa.SQL.Add('logradouro, numero, complemento, bairro, cep,'); Form1.qryCadEmpresa.SQL.Add('nomeContato, telefone) VALUES(null, :pcgcMF, :pinscEst,'); Form1.qryCadEmpresa.SQL.Add(':pnomeContrib,:pmunicipio, :puf, :pfax, :pdataInicial, :pdataFinal,'); Form1.qryCadEmpresa.SQL.Add(':pcodConvenio, :pcodOperacao, :pcodFinalidade,'); Form1.qryCadEmpresa.SQL.Add(':plogradouro, :pnumero, :pcomplemento, :pbairro, :pcep'); Form1.qryCadEmpresa.SQL.Add(':pnomeContato, :ptelefone);'); Form1.qryCadEmpresa.Parameters.ParamByName('cgcMf').Value := cgcMf; Form1.qryCadEmpresa.Parameters.ParamByName('inscEst').Value := inscEst; Form1.qryCadEmpresa.Parameters.ParamByName('nomeContrib').Value := nomeContrib; Form1.qryCadEmpresa.Parameters.ParamByName('municipio').Value := municipio; Form1.qryCadEmpresa.Parameters.ParamByName('uf').Value := uf; Form1.qryCadEmpresa.Parameters.ParamByName('fax').Value := StrToInt(fax); Form1.qryCadEmpresa.Parameters.ParamByName('dataInicial').Value := dataInicial; Form1.qryCadEmpresa.Parameters.ParamByName('dataFinal').Value := dataFinal; Form1.qryCadEmpresa.Parameters.ParamByName('codConvenio').Value := StrToInt(codConvenio); Form1.qryCadEmpresa.Parameters.ParamByName('codOperacao').Value := StrToInt(codOperacao); Form1.qryCadEmpresa.Parameters.ParamByName('codFinalidade').Value := StrToInt(codFinalidade); Form1.qryCadEmpresa.Parameters.ParamByName('logradouro').Value := logradouro; Form1.qryCadEmpresa.Parameters.ParamByName('numero').Value := StrToInt(numero); Form1.qryCadEmpresa.Parameters.ParamByName('complemento').Value := complemento; Form1.qryCadEmpresa.Parameters.ParamByName('bairro').Value := bairro; Form1.qryCadEmpresa.Parameters.ParamByName('cep').Value := cep; Form1.qryCadEmpresa.Parameters.ParamByName('nomeContato').Value := nomeContato; Form1.qryCadEmpresa.Parameters.ParamByName('telefone').Value := StrToInt(telefone); Form1.qryCadEmpresa.ExecSQL; Form1.qryCadEmpresa.Open; Form1.qryCadEmpresa.Post; Result:= 'Registro Inserido Com Sucesso!'; except on E: Exception do ShowMessage(E.ClassName + '----------' + E.Message); end;//try finally Form1.qryCadEmpresa.SQL.Clear; Form1.ADOConnection1.Close; end;//finally end; //Fun_InsereCadEmpresa e o código da chamada para o método: procedure TForm1.btnSalvarClick(Sender: TObject); begin try ShowMessage( Fun_InsereCadEmpresa(txtCodEmpresa.Text, txtCGCCNPJ.Text, txtInscEstatual.Text, txtNomeContribuinte.Text, txtMunicipio.Text, cbxUF.Text, txtFAX.Text, txtDataInicial.Text, txtDataFinal.Text, txtCodConvenio.Text, txtCodOperacao.Text, txtCodFinalidade.Text, txtLogradouro.Text, txtNumero.Text, txtComplemento.Text, txtBairro.Text, txtCEP.Text, txtNomeContato.Text, txtTelefone.Text)); except on E: Exception do ShowMessage('Erro ao Cadastrar! Erro: ' + E.ClassName + ' / ' + E.Message); end; end; aguardo ajuda abraço Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Janeiro 22, 2009 Você colocou dois comandos conflitantes aqui neste trecho: Form1.qryCadEmpresa.ExecSQL; Form1.qryCadEmpresa.Open; Form1.qryCadEmpresa.Post; Quando se executa Inserts, updates e deletes, não se usa Open e Post. Deixa só o ExecSQL e tenta novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Infoloko 0 Denunciar post Postado Janeiro 23, 2009 Caro colega... Esses comandos tbm não são necessários... Form1.qryCadEmpresa.Open; Form1.qryCadEmpresa.Insert; e se sua Qry não tem os campos pre determinados, não há a necessidade desta linha Form1.qryCadEmpresa.ClearFields; Att. Compartilhar este post Link para o post Compartilhar em outros sites