Problemas com DBEXPRESS
Pessoal, estou fazendo uma aplicação no delphi 7 com dbx mas dá um erro na hora do applyupdates... aparece a seguinte mensagem: ´Unable to find record. No key specified´
Nesse momento utilizando o DatasetProvider a opção upWhereKeyOnly.
Quando mudo para upWhereAll e acompanho acompanho pelo profile do SQL Server que é o banco que utilizo, ele exibe um comando de update louco que não passa a chave primaria da tabela... Mas isso acontece apenas na maquina que uso pra desenvolver. Fiz uma alteração na mesma tabela em outra maquina e funcionou numa boa... qual pode ser o problema? Alguem tem ideia? Não queria ter que reinstalar o delphi!
Nesse momento utilizando o DatasetProvider a opção upWhereKeyOnly.
Quando mudo para upWhereAll e acompanho acompanho pelo profile do SQL Server que é o banco que utilizo, ele exibe um comando de update louco que não passa a chave primaria da tabela... Mas isso acontece apenas na maquina que uso pra desenvolver. Fiz uma alteração na mesma tabela em outra maquina e funcionou numa boa... qual pode ser o problema? Alguem tem ideia? Não queria ter que reinstalar o delphi!
Serrosilva
Curtidas 0
Respostas
Edsant
14/05/2009
Caro amigo, tudo bem?
Você precisa especificar qual campo é sua chave primaria...
Vá no [b:868366c44a]SQLDataSet[/b:868366c44a] abra o [b:868366c44a]Fields Editor [/b:868366c44a]selecione o campo que é sua chave, vá na opção ProviderFlags e coloque [b:868366c44a]pfInKey = True[/b:868366c44a]
Se quizer pode fazer o mesmo para o ClientDataSet...mas acho q não precisa....
Estude um pouco sobre ProviderFlags...
Espero ter ajudado....
Você precisa especificar qual campo é sua chave primaria...
Vá no [b:868366c44a]SQLDataSet[/b:868366c44a] abra o [b:868366c44a]Fields Editor [/b:868366c44a]selecione o campo que é sua chave, vá na opção ProviderFlags e coloque [b:868366c44a]pfInKey = True[/b:868366c44a]
Se quizer pode fazer o mesmo para o ClientDataSet...mas acho q não precisa....
Estude um pouco sobre ProviderFlags...
Espero ter ajudado....
GOSTEI 0
Serrosilva
14/05/2009
Caro amigo edsant
Na verdade, ja fiz todas essas configurações nas chave tanto no clientdataset como no sqldataset. Como disse, em outra maquina funciona numa boa... achava que esta problema na dll dbexpmss.dll e peguei a da maquina que funciona o programa mas mesmo assim não deu certo. Pode ser alguma outra dll que o delphi 7 precisa pra trabalhar com o SQL server? se for, qual o nome dessa dll?
Ontem desinstalei o delphi e instalei novamente e continua com o mesmo erro... será q é preciso formatar a minha máquina?
Será q vc tem alguma solução pra isso?
Na verdade, ja fiz todas essas configurações nas chave tanto no clientdataset como no sqldataset. Como disse, em outra maquina funciona numa boa... achava que esta problema na dll dbexpmss.dll e peguei a da maquina que funciona o programa mas mesmo assim não deu certo. Pode ser alguma outra dll que o delphi 7 precisa pra trabalhar com o SQL server? se for, qual o nome dessa dll?
Ontem desinstalei o delphi e instalei novamente e continua com o mesmo erro... será q é preciso formatar a minha máquina?
Será q vc tem alguma solução pra isso?
GOSTEI 0
Edsant
14/05/2009
Por acaso vc está usando alguns left Join ou similar..?
Post aqui a instrução SQL que vc está fazendo...
Aguardo,
Post aqui a instrução SQL que vc está fazendo...
Aguardo,
GOSTEI 0
Edsant
14/05/2009
Outra coisa que você pode verificar é o Dialect do SQL...por padrão é o 3...ele é case sensitive. ou seja, vai vericar a forma que vc digitou o nome da Tabela e os campos....
Verifique isso, ou mude para oDialect 1..
Eu normalmente uso o Dialect 3 com tudo maiusculo....
verifica ai...
Falous
Verifique isso, ou mude para oDialect 1..
Eu normalmente uso o Dialect 3 com tudo maiusculo....
verifica ai...
Falous
GOSTEI 0
Serrosilva
14/05/2009
A tabela não tem inner nem left join... o banco de dados esta na rede e como falei, de outra maquina acesso sem problema algum no mesmo executável. O problema é só no meu computador... sabe quais as dlls que o dbexpress utiliza?
GOSTEI 0