Ajuda com IBX. Botao inserir...
Olá delphianos,
Alguem saberia me dizer o que esta errado no codigo abaixo:
procedure TFrmCadForn.sbInserirClick(Sender: TObject);
begin
with DatModule.dsFornecedores do
Begin
InsertSQL; //chamo a propriedade insertsql
ParamByName(´RAZAOSOCIAL´).AsString:= edRazSocial;
//atribuo os parametros aos edits. edRazSocial é o nome de um edit
ParamByName(´FANTASIA´).AsString:= edFantasia;
ParamByName(´CATEGORIA´).AsString := edCategoria;
ParamByName(´DATACADASTRO´).AsString := StrtoDate(edDataCad);
ParamByName(´DOCREC´).AsString := edDocRec;
ParamByName(´NUMDOC´).AsString := edNumDoc;
ParamByName(´DOCAUX´).AsString := edDocAux;
ParamByName(´NUMAUX´).AsString := edNumAux;
ParamByName(´NUMLOGR´).AsString := ednum;
ParamByName(´COMPLEMENTO´).AsString := edComplemento;
ParamByName(´DATANASC´).AsString := StrtoDate(edDataNasc);
ParamByName(´NOMEPAI´).AsString := edPai;
ParamByName(´NOMEMAE´).AsString := edMae;
ParamByName(´SEXO´).AsString := edSexo;
ParamByName(´NATURALIDADE´).AsString := edNatural;
ParamByName(´NACIONALIDADE´).AsString := edNacionalidade;
ParamByName(´ESTADOCIVIL´).AsString := edEstCivil;
ParamByName(´TELEFONE´).AsString := edTel;
ParamByName(´CONTATO´).AsString := edContato;
ExecSQL; //executo a instrução
end;
Na propriedade InsertSQL do IBdataSet (dsFornecedores) tem o seguinte codigo:
insert into FORNECEDORES
(FORNECEDOR, RAZAOSOCIAL, FANSTASIA, CATEGORIA, DATACADASTRO,
DOCREC,
NUMDOC, DOCAUX, NUMAUX, LOGRADOURO, CODLOGRA, NUMLOGR,
COMPLEMENTO,
DATANASC, NOMEPAI, NOMEMAE, SEXO, NATURALIDADE, NACIONALIDADE,
ESTADOCIVIL,
TELEFONE, CONTATO)
values
(:FORNECEDOR, :RAZAOSOCIAL, :FANSTASIA, :CATEGORIA, :DATACADASTRO,
:DOCREC,
:NUMDOC, :DOCAUX, :NUMAUX, :LOGRADOURO, :CODLOGRA, :NUMLOGR,
:COMPLEMENTO,
:DATANASC, :NOMEPAI, :NOMEMAE, :SEXO, :NATURALIDADE,
:NACIONALIDADE,
:ESTADOCIVIL, :TELEFONE, :CONTATO)
Obrigada pela atenção.
Alguem saberia me dizer o que esta errado no codigo abaixo:
procedure TFrmCadForn.sbInserirClick(Sender: TObject);
begin
with DatModule.dsFornecedores do
Begin
InsertSQL; //chamo a propriedade insertsql
ParamByName(´RAZAOSOCIAL´).AsString:= edRazSocial;
//atribuo os parametros aos edits. edRazSocial é o nome de um edit
ParamByName(´FANTASIA´).AsString:= edFantasia;
ParamByName(´CATEGORIA´).AsString := edCategoria;
ParamByName(´DATACADASTRO´).AsString := StrtoDate(edDataCad);
ParamByName(´DOCREC´).AsString := edDocRec;
ParamByName(´NUMDOC´).AsString := edNumDoc;
ParamByName(´DOCAUX´).AsString := edDocAux;
ParamByName(´NUMAUX´).AsString := edNumAux;
ParamByName(´NUMLOGR´).AsString := ednum;
ParamByName(´COMPLEMENTO´).AsString := edComplemento;
ParamByName(´DATANASC´).AsString := StrtoDate(edDataNasc);
ParamByName(´NOMEPAI´).AsString := edPai;
ParamByName(´NOMEMAE´).AsString := edMae;
ParamByName(´SEXO´).AsString := edSexo;
ParamByName(´NATURALIDADE´).AsString := edNatural;
ParamByName(´NACIONALIDADE´).AsString := edNacionalidade;
ParamByName(´ESTADOCIVIL´).AsString := edEstCivil;
ParamByName(´TELEFONE´).AsString := edTel;
ParamByName(´CONTATO´).AsString := edContato;
ExecSQL; //executo a instrução
end;
Na propriedade InsertSQL do IBdataSet (dsFornecedores) tem o seguinte codigo:
insert into FORNECEDORES
(FORNECEDOR, RAZAOSOCIAL, FANSTASIA, CATEGORIA, DATACADASTRO,
DOCREC,
NUMDOC, DOCAUX, NUMAUX, LOGRADOURO, CODLOGRA, NUMLOGR,
COMPLEMENTO,
DATANASC, NOMEPAI, NOMEMAE, SEXO, NATURALIDADE, NACIONALIDADE,
ESTADOCIVIL,
TELEFONE, CONTATO)
values
(:FORNECEDOR, :RAZAOSOCIAL, :FANSTASIA, :CATEGORIA, :DATACADASTRO,
:DOCREC,
:NUMDOC, :DOCAUX, :NUMAUX, :LOGRADOURO, :CODLOGRA, :NUMLOGR,
:COMPLEMENTO,
:DATANASC, :NOMEPAI, :NOMEMAE, :SEXO, :NATURALIDADE,
:NACIONALIDADE,
:ESTADOCIVIL, :TELEFONE, :CONTATO)
Obrigada pela atenção.
Flavia_mococa
Curtidas 0
Respostas
Gandalf.nho
09/08/2004
Qual o erro que ocorre? Sugestão: como você pelo jeito não usa controles data-aware, pq não usa um IBSQL para processar as consultas, que é mais leve.
GOSTEI 0
Afarias
09/08/2004
|InsertSQL; //chamo a propriedade insertsql
Aqui vc NÃO FAZ NADA! Isto não é um método mas uma propriedade.
Esta propriedade é usada para informar o comando que será executado pelo DataSet após um Append/Post.
|ParamByName(´RAZAOSOCIAL´).AsString:= edRazSocial;
|{...}
|ExecSQL; //executo a instrução
1) Os parâmetros dos SQLs das propriedades ModifySQL, InsertSQL, DeleteSQL e RefreshSQL NÃO são preenchidos por vc mas automaticamente pelo componente (com os valores dos campos (TFields) do componente)
2) Um ExecSQL executa apenas o comando q estiver no SelectSQL.
Se vc quer inserir usando um IBDataSet apenas faça:
DataSet.Append;
DataSet.FieldByName(´TAL´).AsInteger := x;´
{...}
DataSet.Post;
(dê uma lida completa no tópico no topo deste fórum!)
T+
Aqui vc NÃO FAZ NADA! Isto não é um método mas uma propriedade.
Esta propriedade é usada para informar o comando que será executado pelo DataSet após um Append/Post.
|ParamByName(´RAZAOSOCIAL´).AsString:= edRazSocial;
|{...}
|ExecSQL; //executo a instrução
1) Os parâmetros dos SQLs das propriedades ModifySQL, InsertSQL, DeleteSQL e RefreshSQL NÃO são preenchidos por vc mas automaticamente pelo componente (com os valores dos campos (TFields) do componente)
2) Um ExecSQL executa apenas o comando q estiver no SelectSQL.
Se vc quer inserir usando um IBDataSet apenas faça:
DataSet.Append;
DataSet.FieldByName(´TAL´).AsInteger := x;´
{...}
DataSet.Post;
(dê uma lida completa no tópico no topo deste fórum!)
T+
GOSTEI 0