Fórum Delphi X AutoInc do MsSql #337001

30/01/2007

0

Criei um campo chave int identity. Se no Analyzer eu insiro

insert into tabela values(´Nome´)

funciona, pois o campo se autoincrementa. Porem se pelo delphi, eu digito, tipo:
ClientDataSet.Insert ou Append e depois dou um ClientDataSet.Post, dá erro dizendo, q campo codigo precisa de um valor. Como trabalhar com ele via Delphi? Já atei os AutoInc para True, no FieldEditor, mas continua não funcionando. Uso DBX, na seguinte ordem:
SQLConection > SqlQuery > DataSetProvider > ClientDataSet > DataSource.



Paulo

Paulo

Responder

Posts

31/01/2007

Gardel

Vc ja seto a propriedade Required do campo no dataset para false?

Caso vc esteja trabalhando com ClientDataSet com um dataset para pegar os dados do banco vc também precisa setar a propriedade required do TField em questao para false...

Até mais


Responder

Gostei + 0

31/01/2007

Brunolspp

eu creio q fica mais portavel e escalavel, pra não dizer ate mais seguro desvincular a geraçãod e valores unicos ou chave primaria do banco de dados.

se quiserem, tem um exemplo meu, a função retornaID, no exemplo BorCon 2006 disponibilizado no meu link de downloads:
http://cc.codegear.com/Author.aspx?ID=795118

é só procurar no server pela função retornaid para sua implementação e no cliente a mesma função para entender o seu uso.

ressalto q aconselho o uso dela tb no evento beforeupdaterecord do datasetprovider.

esta função garante totalemnte a integridade dos dados, e impossibilita a geração d evalores duplicados e vc trabalha independente de qq banco de dados. mais rapida, mais portavel, mais adaptavel, mais escalavel e mais segura.


Responder

Gostei + 0

02/02/2007

Paulo

Required´para False e funcionou.


Responder

Gostei + 0

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

Aceitar