Delphi X AutoInc do MsSql
Criei um campo chave int identity. Se no Analyzer eu insiro
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:
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
Curtidas 0
Respostas
Gardel
30/01/2007
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
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
GOSTEI 0
Brunolspp
30/01/2007
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.
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.
GOSTEI 0
Paulo
30/01/2007
Required´para False e funcionou.
GOSTEI 0