Operation not aplicable

Delphi

30/04/2004

Bom dia,
Desenvolvi um sistema em tres camadas usando dbexpress e mysql, porém qdo estava desenvolvendo estava tudo ok, tipo minha aplicação servidora e cliente estavam na minha maquina (XP) e rodava tudo sem problemas.
Agora ao jogar o servidor de aplicação no meu servidor (NT) estou passando por alguns problemas, o sqlconnection abre a conexão,
porém não permite q eu execute alguma coisa nele.
Vou explicar melhor, a primeira tela (login), ao executar uma qry simples de verificação está me retornando o seguinte erro
´Operation not aplicable´.
Alguém já passou por isso? Têm alguma dica?
Detalhe:
- A aplicação se conecta com o banco;
- O banco está em um servidor linux;
- usário de conexão está com todas as permissões (grant all)
- Os ips estão corretos.


Fer_nanda

Fer_nanda

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

30/04/2004

Fernanda,

A única ocasião em que eu passei pelo erro de operação não aplicável com DBExpress foi com o método ´TSQLDataSet.Prepare´... esse método não pode ser usado diretamente, deve-se passar a propriedade Prepared para True ao invés de aplicá-lo...
Existe tbm uma restrição do DBExpress para ler o RecordCount caso o DataSet tenha parametros, mas não me lembro se neste caso eh levantada exceção...
Talvez de vc postar o bloco de código e a instrução dessa query possamos ajudá-la melhor...

T+


GOSTEI 0
Fer_nanda

Fer_nanda

30/04/2004

Obrigada pela ajuda, em nenhum momento utiizo recourdcount o máximo é cds.eof, mas o erro dá antes de tentar executar essa linha. Tbém não utilizo DataSet nesse trecho do código, em outros sim.
A estrutura está assim, no servidor: sqlconnection-> query -> datasetprovider
no cliente: socketconnection -> remotedatamodule (server)
clientedataset->socketconnetion ->datasetprovider(server) tah (meio bagunçadinho mas acho q consegue entender né?)

A query como disse é uma busca simples.

  cdsLogin.Close;
  cdsLogin.Params.ParamByName(´wsnome_usuario´).AsString := edtnome_usuario.Text;
  cdsLogin.Open; // **ERRO AQUI!**
//  cdsLogin.Active := true; //jah tentei das duas maneiras!

  if cdslogin.eof then //nem chega a entrar aqui =(


Obrigada novamente


GOSTEI 0
Fer_nanda

Fer_nanda

30/04/2004

Consegui resolver. Estava precisando de uma cópia da dll midas.dll no servidor.
Caso mais alguém passe por isso fica aí a dica.

Ah!! é necessário ter o regsvre32.exe para registrar essa dll.

Mesmo assim obrigada pela dica.


GOSTEI 0
POSTAR