Auto Inc. dbExpress
olá pessoal...
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
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
Curtidas 0
Respostas
Miuuudo
21/06/2006
oi de novo...
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???
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
Miuuudo
21/06/2006
ok ok pessoal...
é 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...
é 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
Miuuudo
21/06/2006
mas e porém tentei fazer isso dinamicamente...
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.
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
Miuuudo
21/06/2006
meu deus !!!
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...
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
Paullsoftware
21/06/2006
Eu tenho uma rotina que usava na epoca em que eu usava access, ele pode ser útil pra vc... amanhã pela manhã quando eu chegar na empresa eu posto ele aqui.. :wink:
GOSTEI 0
Paullsoftware
21/06/2006
tenta usar esse código aqui, eu usei esse tem outro tb...
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:
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
Miuuudo
21/06/2006
olá paull
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)
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
Miuuudo
21/06/2006
sobe
GOSTEI 0