ERRO AO DEFINIR CLIENTDATASET (DBEXPRESS)

Delphi

05/06/2009

Estou definindo as conexões para o banco de dadso (MySql) utilizando DBExpress (Delphi 6).

Defini um SqlDataSet com a propriedade Comand Text contendo Select identificacao, texto from linhas where identificacao = :identificacao.

e defini a sua respectiva SqlConnection.

Em seguida defini defini o DataSetProvider com suas propriedades.

Ao definir ClientdataSet, especifiquei O Provider , ao configurar a propriedade Params recebo , ao acionar a opção Add all field no Field Editor, a mensagem de erro No Value for parameter ´identificacao´.

O que estou fazendo errado?


Poy

Poy

Curtidas 0

Respostas

Woinch

Woinch

05/06/2009

Na propriedade Params do ClientDataSet foi criado o parâmetro identificacao? Caso contrário crie-o.

Espero ter ajudado.


GOSTEI 0
Poy

Poy

05/06/2009

WOINCH,

A propriedade Params do Client Data Set está definido como Tparams,
Qando edito o parâmetro exibe ´0 - identificacao´, sem aspas.
No Object Inspector as definições são : Data type ftstring
Name identificacao
Param Type PTInput
Size 11

As definições estão corretas?


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

olá !!

amigo, eu entendi o seu problema .. faça o seguinte ..

no seu comando SQL (Select identificacao, texto from linhas where identificacao = :identificacao) troque para:

Select identificacao, texto from linhas

adicione os campos e depois coloque novamente o comando SQL padrão:

Select identificacao, texto from linhas where identificacao = :identificacao



qq coisa post novamente ...

abraço!!


GOSTEI 0
Woinch

Woinch

05/06/2009

Quem pode dizer se está correto é você mesmo. :) eu não sei o tipo do campo. Na dúvida coloque o tipo ftUnknown e o ParamType desse jeito também. As vezes ocorre de dar uns paus em relação a isso (não me pergunte porque)... Ai o negócio é adicionar novos conjutos de ClientDataSet, etc... e fazer a mesma configuração. Remova os antigos e renomeie os novos.

Espero ter ajudado.


GOSTEI 0
Poy

Poy

05/06/2009

daniel,

Não resolveu, dá ´erro catastrófico´


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

faça o seguinte .. tente definir um valor para o parametro Identificacao ..

entre na propriedade Params e em 0 - identificacao, defina a propriedade identificacao para ´x´ (sem aspas) ...

faça esse teste e post aki o erro que der ...

abraço !!


GOSTEI 0
Discorpio

Discorpio

05/06/2009

Bom dia a todos.

Pessoal, o erro está na definição do parâmetro na instrução SQL.

Como assim :?:

Qual é o banco de dados utilizado :?: MySQL, correto.

Voce está utilizando a sintaxe de definição de parâmetros do dialeto SQL do FireBird, ou seja, colocando dois pontos (´:´) antes do nome do parâmetro.

Select identificacao, texto from linhas where identificacao = [color=red:2975f9e90f]:identificacao[/color:2975f9e90f].


No dialeto SQL do MySQL, se não me falhe a memória, a identificação do parâmetro é definida pelo caracter ponto de interrogação (´?´). Então ficaria assim:

Select identificacao, texto from linhas where identificacao = [color=red:2975f9e90f]?identificacao[/color:2975f9e90f].



GOSTEI 0
Poy

Poy

05/06/2009

daniel, no caso de sua sugestão o eero que dá é erro catastrofico.

NO caso do Jorge, o erro não muda: ´No value for parameter identificacao´


SOCORRO !!!!!!!


GOSTEI 0
Marco Salles

Marco Salles

05/06/2009

Vc clicou no CleintDataSett com o Botão direito e escolheu a Opção
FetchParams ???????


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

No dialeto SQL do MySQL, se não me falhe a memória, a identificação do parâmetro é definida pelo caracter ponto de interrogação (´?´)


no MySql é ´:´ (dois pontos) mesmo ...

faça o seguinte ...

limpe a sua instrução SQL ... deixe-a em branco ...
emtre em Params e delete o parametro ´0 - identificacao´...

coloque novamente sua instrução SQL:

Select identificacao, texto from linhas where identificacao = :identificacao


sem adicionar nenhum parametro (pois ele já foi adicionado como Unknown com a instrução sql), tente add os Campos novamente ..

qq coisa é só postar ...

abraço !!!


GOSTEI 0
Poy

Poy

05/06/2009

sim, fiz o fetch parameters.

Apaguei tudo e refiz e o erro continua.....


GOSTEI 0
Marco Salles

Marco Salles

05/06/2009

So uma pergunta

Sem o Parametro vc consegue adicionar os Fields ???


GOSTEI 0
Poy

Poy

05/06/2009

Não. dá erro de sintaxe em :identificador


GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

estranho...

se vc puder, faça um sisteminha simples:

1 form + componentes de conexão com a tabela ...

a tabela eu crio aki ...

faça tudo como vc está fazendo aí e mande por e-mail pra mim ... eu dou uma analizada ...

danielrsanches@gmail.com

abraços !!


GOSTEI 0
Marco Salles

Marco Salles

05/06/2009

So uma pergunta Sem o Parametro vc consegue adicionar os Fields ???



Não. dá erro de sintaxe em :identificador


Não .... Vc não entendeu .

Sem o parametro vc tem que tirar o IDENTIFICADOR

Assim ô....

Select identificacao, texto from linhas

simples assim ....


GOSTEI 0
Discorpio

Discorpio

05/06/2009

Bom dia a todos

no MySql é ´:´ (dois pontos) mesmo ...


Daniel, acho que voce está equivocado. Ao consultar alguns livros de MySQL aqui da Secretaria, vi que o identificador de parâmetros do seu dialeto SQL é o ponto de interrogação.

O meu post anterior está parcialmente correto, ou seja, voce não precisa nomear o parâmetro na instrução SQL, o ponto de interrogação por si só já o parâmetro, assim:

  Select identificacao, texto from linhas where identificacao = ?


Repare que o erro passou a ser este:

Não. dá erro de sintaxe em :identificador



GOSTEI 0
Danielrsanches

Danielrsanches

05/06/2009

olá Discórpio !!

olha !! eu trabalho com MySQL há algum tempo, e continuo trabalhando com tal, e sempre utilizei ´:´

nunca ocorreu erro de sintaxe ...

utilizo a versão 5 ...

abraço !!!


GOSTEI 0
Devmedia

Devmedia

05/06/2009

Estou definindo as conexões para o banco de dadso (MySql) utilizando DBExpress (Delphi 6). Defini um SqlDataSet com a propriedade Comand Text contendo Select identificacao, texto from linhas where identificacao = :identificacao. e defini a sua respectiva SqlConnection. Em seguida defini defini o DataSetProvider com suas propriedades. Ao definir ClientdataSet, especifiquei O Provider , ao configurar a propriedade Params recebo , ao acionar a opção Add all field no Field Editor, a mensagem de erro No Value for parameter ´identificacao´. O que estou fazendo errado?


Olá poy!
Tudo bom contigo?

            DMGuiaDeTrafego.ClientDataSetRelatorioGuia.Active := False;
            DMGuiaDeTrafego.QueryRelatorioGuia.Close;
            DMGuiaDeTrafego.QueryRelatorioGuia.SQL.Clear;
            DMGuiaDeTrafego.QueryRelatorioGuia.SQL.Add(´select NUMERO, REGIAO, DESTICID, DESTIUF, DATA from GUIA where DATA>=:pINICIAL and DATA<=:pFINAL order by DESTIUF, NUMERO´);
            DMGuiaDeTrafego.QueryRelatorioGuia.ParamByName(´pINICIAL´).AsDateTime := StrToDate(CrnDateEditPrimeiraData.Text);
            DMGuiaDeTrafego.QueryRelatorioGuia.ParamByName(´pFINAL´).AsDateTime := StrToDate(CrnDateEditUltimaData.Text);
            DMGuiaDeTrafego.QueryRelatorioGuia.Open;
            DMGuiaDeTrafego.ClientDataSetRelatorioGuia.Active := True;


Estou te enviando um código meu aqui sem fazer edição pra voce, porque to na correria, mas pelo que eu entendi do seu tópico, seria isto?!

Certo, errado, posta ai de novo!


GOSTEI 0
Devmedia

Devmedia

05/06/2009

Estou definindo as conexões para o banco de dadso (MySql) utilizando DBExpress (Delphi 6). Defini um SqlDataSet com a propriedade Comand Text contendo Select identificacao, texto from linhas where identificacao = :identificacao. e defini a sua respectiva SqlConnection. Em seguida defini defini o DataSetProvider com suas propriedades. Ao definir ClientdataSet, especifiquei O Provider , ao configurar a propriedade Params recebo , ao acionar a opção Add all field no Field Editor, a mensagem de erro No Value for parameter ´identificacao´. O que estou fazendo errado?


Olá poy!
Tudo bom contigo?

DMGuiaDeTrafego.ClientDataSetRelatorioGuia.Active := False;
DMGuiaDeTrafego.QueryRelatorioGuia.Close;
DMGuiaDeTrafego.QueryRelatorioGuia.SQL.Clear;
DMGuiaDeTrafego.QueryRelatorioGuia.SQL.Add(´select NUMERO, REGIAO, DESTICID, DESTIUF, DATA from GUIA where DATA>=:pINICIAL and DATA<=:pFINAL order by DESTIUF, NUMERO´);
DMGuiaDeTrafego.QueryRelatorioGuia.ParamByName(´pINICIAL´).AsDateTime := StrToDate(CrnDateEditPrimeiraData.Text);
DMGuiaDeTrafego.QueryRelatorioGuia.ParamByName(´pFINAL´).AsDateTime := StrToDate(CrnDateEditUltimaData.Text);
DMGuiaDeTrafego.QueryRelatorioGuia.Open;
DMGuiaDeTrafego.ClientDataSetRelatorioGuia.Active := True;


Estou te enviando um código meu aqui sem fazer edição pra voce, porque to na correria, mas pelo que eu entendi do seu tópico, seria isto?!

Certo, errado, posta ai de novo!


GOSTEI 0
POSTAR