Provider Flag x ProviderDataset
ola bom dia
existe algum material que me ensine a configurar corretamente o update mode do providerdataset de acordo com as provider flag das chaves?
valeu
existe algum material que me ensine a configurar corretamente o update mode do providerdataset de acordo com as provider flag das chaves?
valeu
Diego Macario
Curtidas 0
Respostas
Eriley Barbosa
13/10/2010
http://www.dotbr.com.br/fernando/lp_comercial/Datacar-ParteII.pdf
GOSTEI 0
Marcos Iwazaki
13/10/2010
Em resumo.
Os dados mais importante que eu considero deste componenteDataSetProvider Options = [poIncFieldProps -> propriedades como displayLabe, required, etc. Serão passadas para o ClientDataSet(ou outro dataset ligado a ele) ,poAllowCommandText -> permite que vc consiga utilizar o commandText do ClientDataSet ,poRetainServerOrder -> isso pode dar uns "reverterios". É mais ou menos assim... as vezes no banco o order by funciona de uma maneira e no delphi de outra. Então é melhor sempre pegar da maneira do banco.
UpdateMode = upWhereKeyOnly - o sql de atualização cria na clausula where apenas as PK upWhereAll - o sql de atualização cria na clausula where todos os campos da tabela.
** Ao usar o upWhereKeyOnly é obrigatório configurar certo os providerFlags de todos os fields nas Query.
Os dados mais importante que eu considero deste componenteDataSetProvider Options = [poIncFieldProps -> propriedades como displayLabe, required, etc. Serão passadas para o ClientDataSet(ou outro dataset ligado a ele) ,poAllowCommandText -> permite que vc consiga utilizar o commandText do ClientDataSet ,poRetainServerOrder -> isso pode dar uns "reverterios". É mais ou menos assim... as vezes no banco o order by funciona de uma maneira e no delphi de outra. Então é melhor sempre pegar da maneira do banco.
UpdateMode = upWhereKeyOnly - o sql de atualização cria na clausula where apenas as PK upWhereAll - o sql de atualização cria na clausula where todos os campos da tabela.
** Ao usar o upWhereKeyOnly é obrigatório configurar certo os providerFlags de todos os fields nas Query.
GOSTEI 0
Diego Macario
13/10/2010
http://www.dotbr.com.br/fernando/lp_comercial/Datacar-ParteII.pdf
cara justamente isso, eu fiz com base neste programa e ai pintou minha duvida
GOSTEI 0
Diego Macario
13/10/2010
Em resumo.
Os dados mais importante que eu considero deste componenteDataSetProvider Options = [poIncFieldProps -> propriedades como displayLabe, required, etc. Serão passadas para o ClientDataSet(ou outro dataset ligado a ele) ,poAllowCommandText -> permite que vc consiga utilizar o commandText do ClientDataSet ,poRetainServerOrder -> isso pode dar uns "reverterios". É mais ou menos assim... as vezes no banco o order by funciona de uma maneira e no delphi de outra. Então é melhor sempre pegar da maneira do banco.
UpdateMode = upWhereKeyOnly - o sql de atualização cria na clausula where apenas as PK upWhereAll - o sql de atualização cria na clausula where todos os campos da tabela.
** Ao usar o upWhereKeyOnly é obrigatório configurar certo os providerFlags de todos os fields nas Query.
Os dados mais importante que eu considero deste componenteDataSetProvider Options = [poIncFieldProps -> propriedades como displayLabe, required, etc. Serão passadas para o ClientDataSet(ou outro dataset ligado a ele) ,poAllowCommandText -> permite que vc consiga utilizar o commandText do ClientDataSet ,poRetainServerOrder -> isso pode dar uns "reverterios". É mais ou menos assim... as vezes no banco o order by funciona de uma maneira e no delphi de outra. Então é melhor sempre pegar da maneira do banco.
UpdateMode = upWhereKeyOnly - o sql de atualização cria na clausula where apenas as PK upWhereAll - o sql de atualização cria na clausula where todos os campos da tabela.
** Ao usar o upWhereKeyOnly é obrigatório configurar certo os providerFlags de todos os fields nas Query.
cara me diga entao
eu tenho um programa aonde gera a chave pelo incremento do generator
e ai configurei ele com o inckey, where, update enabled
e deixei o datasetprovider como where key only
mas quando eu editava ou excluia dava um erro de key field requiered
mas preciso que eu possa fazer inserção, edição ou deleção mais de uma vez...
insiro, dou um post
deleto, dou um post
altero, dou um post
GOSTEI 0
Eriley Barbosa
13/10/2010
Você tem que selecionar o campo chave e alterar sua propriedade Required para False, tanto no SQLDataset como no ClientDataset.
GOSTEI 0
Diego Macario
13/10/2010
Você tem que selecionar o campo chave e alterar sua propriedade Required para False, tanto no SQLDataset como no ClientDataset.
cara esta como false...
GOSTEI 0
Marcos Iwazaki
13/10/2010
verifique se na sua query esta configurado certoe se no ClientDataSet ele puxou certos essas flags.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
GOSTEI 0
Diego Macario
13/10/2010
verifique se na sua query esta configurado certoe se no ClientDataSet ele puxou certos essas flags.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
ae socram, quando eu mudo as provider flags e o provider dataset ai da certo...
deixo em whereall
GOSTEI 0
Marcos Iwazaki
13/10/2010
O ideal seria usar WhereKeyOnly
É mto mais rapido.
No WhereAll tenha certeza que vc inicialize todos os campos not null e que tenham valores default no banco...Senão vai ficar aparecendo de vez enqdo a msg que o registros foi alterado por outro usuario e talz.
ae socram, quando eu mudo as provider flags e o provider dataset ai da certo...
deixo em whereall
É mto mais rapido.
No WhereAll tenha certeza que vc inicialize todos os campos not null e que tenham valores default no banco...Senão vai ficar aparecendo de vez enqdo a msg que o registros foi alterado por outro usuario e talz.
verifique se na sua query esta configurado certoe se no ClientDataSet ele puxou certos essas flags.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
ae socram, quando eu mudo as provider flags e o provider dataset ai da certo...
deixo em whereall
GOSTEI 0
Diego Macario
13/10/2010
O ideal seria usar WhereKeyOnly
É mto mais rapido.
No WhereAll tenha certeza que vc inicialize todos os campos not null e que tenham valores default no banco...Senão vai ficar aparecendo de vez enqdo a msg que o registros foi alterado por outro usuario e talz.
ae socram, quando eu mudo as provider flags e o provider dataset ai da certo...
deixo em whereall
É mto mais rapido.
No WhereAll tenha certeza que vc inicialize todos os campos not null e que tenham valores default no banco...Senão vai ficar aparecendo de vez enqdo a msg que o registros foi alterado por outro usuario e talz.
verifique se na sua query esta configurado certoe se no ClientDataSet ele puxou certos essas flags.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
Esse erro é q tem algum campo ae que é obrigatorio e não foi preenchido. Pode até ser um outro campo q não seja essa sua PK.
ae socram, quando eu mudo as provider flags e o provider dataset ai da certo...
deixo em whereall
pessoal tentei e nao consigo achar uma solucao
oq fazer?
eu li q as providers do dataset nao podem estar iguais a do cds
é verdade?
a flah inkey serve para q?
GOSTEI 0
Eriley Barbosa
13/10/2010
InfKey quando true para um campo, diz que o campo é chave primaria.
GOSTEI 0
Diego Macario
13/10/2010
InfKey quando true para um campo, diz que o campo é chave primaria.
a solucao por mim encontrada foi
em modo de execucao, antes de editar, inserir ou deletar...mudar as provider flags
assim parou ou erro
GOSTEI 0