Gravação em Access com ExecSQL(ADOQuery)
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
Curtidas 0
Respostas
Alineri
01/04/2008
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
GOSTEI 0