Fórum Problemas com DBEXPRESS #370461

14/05/2009

0

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!


Serrosilva

Serrosilva

Responder

Posts

15/05/2009

Edsant

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


Responder

Gostei + 0

15/05/2009

Serrosilva

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?


Responder

Gostei + 0

15/05/2009

Edsant

Por acaso vc está usando alguns left Join ou similar..?

Post aqui a instrução SQL que vc está fazendo...

Aguardo,


Responder

Gostei + 0

15/05/2009

Edsant

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


Responder

Gostei + 0

15/05/2009

Serrosilva

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?


Responder

Gostei + 0

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

Aceitar