Fórum Gravação em Access com ExecSQL(ADOQuery) #356360
01/04/2008
0
Caros, estou tentado inserir dados em uma tabela Access, com o ExecSQL, tenho minha classe de persistência, o que ocorre é: o ExecSQl é executado, porém o registro não é gravado e não retorna erro algum.
Eis ai a função de inserção:
function TClientes.Inserir: boolean;
begin
with _PadoQuery do
begin
Close;
Sql.Clear;
Sql.Text := ´ Insert into Clientes ´+
´ (CPF, DataCadastro, Nome, ´+
´ Sexo, DtNascimento, Endereco, Bairro, ´+
´ Cidade, Estado, CEP)´+
´ Values ´+
´ (:CPF, :DataCadastro, :Nome, ´+
´ :Sexo, :DtNascimento, :Endereco, :Bairro, ´+
´ :Cidade, :Estado, :CEP)´;
Parameters.ParamByName(´CPF´).Value := FCPF;
Parameters.ParamByName(´DataCadastro´).Value := FDataCadastro;
Parameters.ParamByName(´Nome´).Value := FNome;
Parameters.ParamByName(´Sexo´).Value := FSexo;
Parameters.ParamByName(´DtNascimento´).Value := FDtNascimento;
Parameters.ParamByName(´Endereco´).Value := FEndereco;
Parameters.ParamByName(´Bairro´).Value := FBairro;
Parameters.ParamByName(´Cidade´).Value := FCidade;
Parameters.ParamByName(´Estado´).Value := FEstado;
Parameters.ParamByName(´CEP´).Value := FCEP;
try
ExecSQL;
result := true;
//GlobalConexao.conexao.CommitTrans;
except
On E:Exception do
begin
Showmessage(´Falha na Inclusão dos Dados!´#1310´Mensagem: ´+E.Message);
result := false;
end;
end;
end;
end;
desde já agradeço a ajuda.
Eis ai a função de inserção:
function TClientes.Inserir: boolean;
begin
with _PadoQuery do
begin
Close;
Sql.Clear;
Sql.Text := ´ Insert into Clientes ´+
´ (CPF, DataCadastro, Nome, ´+
´ Sexo, DtNascimento, Endereco, Bairro, ´+
´ Cidade, Estado, CEP)´+
´ Values ´+
´ (:CPF, :DataCadastro, :Nome, ´+
´ :Sexo, :DtNascimento, :Endereco, :Bairro, ´+
´ :Cidade, :Estado, :CEP)´;
Parameters.ParamByName(´CPF´).Value := FCPF;
Parameters.ParamByName(´DataCadastro´).Value := FDataCadastro;
Parameters.ParamByName(´Nome´).Value := FNome;
Parameters.ParamByName(´Sexo´).Value := FSexo;
Parameters.ParamByName(´DtNascimento´).Value := FDtNascimento;
Parameters.ParamByName(´Endereco´).Value := FEndereco;
Parameters.ParamByName(´Bairro´).Value := FBairro;
Parameters.ParamByName(´Cidade´).Value := FCidade;
Parameters.ParamByName(´Estado´).Value := FEstado;
Parameters.ParamByName(´CEP´).Value := FCEP;
try
ExecSQL;
result := true;
//GlobalConexao.conexao.CommitTrans;
except
On E:Exception do
begin
Showmessage(´Falha na Inclusão dos Dados!´#1310´Mensagem: ´+E.Message);
result := false;
end;
end;
end;
end;
desde já agradeço a ajuda.
R7
Curtir tópico
+ 0
Responder
Posts
01/04/2008
Alineri
R7,
ja passei por isso com componentes de acesso da paleta ADO.
qual provedor de conexao voce esta utilizando ? de preferencia por ole db.
verifique as configuracoes do ADOConnection, e ultimo faz a seguinte modificacao no seu codigo, nao sei qual a versao do delphi voce esta utilizando mas ja tive esse mesmo problema em algumas versoes.
coloque _PadoQuery.ExecSQL ao inves de somente EXECSQL, sei que parece um absurdo mas ja tive situacoes utilizando with que alguns parametros eram simplesmente ignorados
um forte abraco
alineri
ja passei por isso com componentes de acesso da paleta ADO.
qual provedor de conexao voce esta utilizando ? de preferencia por ole db.
verifique as configuracoes do ADOConnection, e ultimo faz a seguinte modificacao no seu codigo, nao sei qual a versao do delphi voce esta utilizando mas ja tive esse mesmo problema em algumas versoes.
coloque _PadoQuery.ExecSQL ao inves de somente EXECSQL, sei que parece um absurdo mas ja tive situacoes utilizando with que alguns parametros eram simplesmente ignorados
um forte abraco
alineri
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)