Fórum Auto Inc. dbExpress #323935
21/06/2006
0
estou tentando inserir um registro numa tabela com campo auto increment
cds.close;
cds.commandtext := ´select Codigo,Descricao from Teste´;
cds.open;
cds.insert;
cds.FieldByName(´Descricao´).AsString := ´aaa´;
cds.post;
cds.apllyupdates(0);
Para fazer isso, só botando AutoGenerateValue do campo ´Codigo´ para arAutoInc???
Estou usando o SQL Server e delphi 7
Miuuudo
Curtir tópico
+ 0Posts
21/06/2006
Miuuudo
fiz alguns testes a mais e...
não funciona nem com AutoGenerateValue para arAutoInc e nem colocando Required para false
se coloca Required para false dá ´Field Value Required´
caso contrario diz... ´Field Codigo must have a value´
se eu coloco um valor manual para o campo
cds.FieldByName(´codigo´).AsInteger := 0;
ele não dá erro nenhum e não insere
algum erro meu???
Gostei + 0
21/06/2006
Miuuudo
é o seguinte...
Essas configurações tem que ser nos fields do TSQLQuery e não do TClientDataSet como eu estava fazendo.
ai funciona certo
De vez enquando agente esquece os detalhes...
Gostei + 0
21/06/2006
Miuuudo
antes de open eu faço
with TIntegerField.Create(self) do
begin
FieldName := ´Codigo´;
AutoGenerateValue := arAutoInc;
Required := false;
DataSet := qe; //TSQLQuery
end;
cds.Open; //TClientDataSet
cds.Insert;
cds.FieldByName(´Descricao´).AsString := ´nada´;
Aqui dá erro, não consegue achar o Campo ´Descricao´.
Se eu não criasse o TIntegerField ele acharia normalmente.
No caso eu vou teria que criar um TStringFiled com FieldName = ´Descricao´. Ai funcionaria.
igualmente para todos os outros campos da tabela.
eu não quero isso.
Gostei + 0
21/06/2006
Miuuudo
para inserir um registro numa tabela com campo auto increment dando
insert e post, só editando o SQLQuery em disign time.
não se faz isso dinamicamente.
que beleza...
Gostei + 0
21/06/2006
Paullsoftware
Gostei + 0
22/06/2006
Paullsoftware
http://forum.clubedelphi.net/viewtopic.php?t=74130&start=0&postdays=0&postorder=asc&highlight=incrementa
senão conseguir diz que posto outro, mais o outro eu uso com FireBird e não sei se vai funcionar com SQLServer.... mais espero ter ajudado :wink:
Gostei + 0
22/06/2006
Miuuudo
muito obrigado pela ajuda...
é... isso que vc me mostrou eu faço normalmente.
inclusive eu nunca crio uma tabela com campo auto increment.
mas eu estou convertendo o sistema, e outras pessoas programaram nele.
Não vou poder sair varrendo todos os sistemas da empresa para substituir essa situação. :(
eu teria realmente que mascarar isso. E para isso só dinamicamente.
mas muito obrigado pela atenção.
você sabe de algum texto de alguem que converteu o sistema de bde para dbexpress???
os que achei são bem superficiais.
um abraço
(mostre a segunda maneira)
Gostei + 0
27/06/2006
Miuuudo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)