Fórum Auto Inc. dbExpress #323935

21/06/2006

0

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


Miuuudo

Miuuudo

Responder

Posts

21/06/2006

Miuuudo

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???


Responder

Gostei + 0

21/06/2006

Miuuudo

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...


Responder

Gostei + 0

21/06/2006

Miuuudo

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.


Responder

Gostei + 0

21/06/2006

Miuuudo

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...


Responder

Gostei + 0

21/06/2006

Paullsoftware

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:


Responder

Gostei + 0

22/06/2006

Paullsoftware

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:


Responder

Gostei + 0

22/06/2006

Miuuudo

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)


Responder

Gostei + 0

27/06/2006

Miuuudo

sobe


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar