programa com sqlquery

Delphi

14/04/2010

Ola,

Tenho um Sqlquery ligado ao dataprovider, o dataprovider ligado no clientdataset e o clientdataset no datasource e por fim o datasource ligado no dbgrid. Tenho a Seguinte rotina:
 CdsArq027.close;
   With Arq027 Do
      Begin
      Sql.Clear;
      Sql.Add('Select codpro, nompro, unicom, codgru, codred, salest, volven, univen from Arq027 Where tippro = :wtippro');
      ParamByName('WTipPro').Value := WTipPro;
      sql.add('and proina = :wproina');
     if pagecontrol1.ActivePageIndex = 0 then
         ParamByName('wproina').value := 0
      else
        ParamByName('wproina').value := 1;
      if edit1.text <> '' then
         begin
         if wtipcod = 'N' THEN
            Sql.Add('and codpro Like ' + #39 + '%' + Edit1.Text + '%' + #39);
         if wtipcod = 'A' THEN
            Sql.Add('and codred Like ' + #39 + '%' + Edit1.Text + '%' + #39);
         end;
      if edit2.text <> '' then
         Sql.Add('and a.nompro Like ' + #39 + '%' + Edit2.Text + '%' + #39);


      if radiogroup1.itemindex = 0 then
         begin
         Sql.add('and codgru=:wcodgru');
         parambyname('wcodgru').value := strtoint(maskedit1.text);

         if wtipcod = 'N' then
            Sql.Add('order by codgru, codpro');

         if wtipcod = 'A' then
            Sql.Add('order by codgru, codred');
         end;

       if radiogroup1.itemindex = 1 then
          begin
          Sql.add('and codsub=:wcodsub');
          parambyname('wcodsub').value := strtoint(maskedit1.text);
          if wtipcod = 'N' then
             Sql.Add('order by codsub, codpro');

          if wtipcod = 'A' then
             Sql.Add('order by codsub, codred');
          end;

       if radiogroup1.itemindex = 2 then
          begin
          Sql.add('and codtip=:wcodtip');
          parambyname('wcodtip').value := strtoint(maskedit1.text);
          if wtipcod = 'N' then
              Sql.Add('order by codtip, codpro');
          if wtipcod = 'A' then
              Sql.Add('order by codtip, codred');
          end;

       if radiogroup1.itemindex = 3 then
          begin
          if wtipcod = 'N' then
             Sql.Add('order by codpro');

          if wtipcod = 'A' then
             Sql.Add('order by codred');
          End;
         end;
      CdsArq027.Open;

faço o mesmo trabalho em varias telas de pesquisa justamente a tela de pesquisa de produto teve que dar problema.
Esta dando o seguinte erro: 'dbExpress driver does not support the TDBXTypes. UINT8 data type. vendor error message: unknown ISL error 0.
No Sqlquery não a parametro somente a rotina : select codpro, nompro, unicom, codgru, codred, salest, volven, univen from arq027

Não sei o que esta acontecendo, alguem pode me ajudar?


obrigado
Wilton Júnior

Wilton Júnior

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

14/04/2010

Você deve ter no banco de dados algum campo com otipo "UINT8" e que este tipo não é suportado pelo dbExpress.

Espero ter colaborado.
GOSTEI 0
Wilton Júnior

Wilton Júnior

14/04/2010

Então companheiro wilson
especialmente nessa query não ha nenhum parametro relacinado.
o que não entendo que é a mesma rotina que usei na confecção de outras telas e justo nessa bendita ela acontece isso.

obrigado!
GOSTEI 0
Wilson Junior

Wilson Junior

14/04/2010

Não são os parâmetros da query, e sim o que está definido no banco de dados.
Talvez tenha algum campo no BD que o tipo que foi definido para ele, o dbExpress não tenha suporte.

Espero ter colaborado.
GOSTEI 0
Wilton Júnior

Wilton Júnior

14/04/2010

verei isso
muito obrigado!
GOSTEI 0
POSTAR