Fórum Erro com Delphi XE + Zeos + MySql (Input parameter count is less then expected) #408489
15/10/2011
0
Colegas;
Tenho um sistema feito em Delphi 2006 onde eu uso o Zeos para conectar no MySql. Recentemente instalei o Delphi XE e baixei uma versão mais nova do Zeos. Está funcionando normalmente, mas identifiquei um erro no componente ZQuery. Quando eu tento fazer um insert passando parâmetros, o componente não reconhece os parâmetros referentes aos campos Integer, Smallint, Tinyint, etc...Segue exemplo:
Estrutura da tabela:
Código Delphi:
Se eu retirar o parâmetro pATIVO, e valorizar o campo diretamente na string, ele funciona. Mas da forma como estou fazendo ele da o seguinte erro:
Input parameter count is less then expected. Isso é problema do componente, pois uso esse mesmo código no Delphi 2006 e funciona perfeitamente.
Alguém mais está tendo esse problema?
Abraço!
Tenho um sistema feito em Delphi 2006 onde eu uso o Zeos para conectar no MySql. Recentemente instalei o Delphi XE e baixei uma versão mais nova do Zeos. Está funcionando normalmente, mas identifiquei um erro no componente ZQuery. Quando eu tento fazer um insert passando parâmetros, o componente não reconhece os parâmetros referentes aos campos Integer, Smallint, Tinyint, etc...Segue exemplo:
Estrutura da tabela:
CREATE TABLE USUARIOS ( NOMEUSUARIO VARCHAR(20) NOT NULL, SENHA VARCHAR(20) NOT NULL, ATIVO TINYINT(1) NOT NULL, CONSTRAINT PRIMARY KEY (NOMEUSUARIO) )
Código Delphi:
procedure TForm1.Button1Click(Sender: TObject);
begin
ZConnection1.Connect;
with ZQuery1 do
begin
Connection := ZConnection1;
SQL.Clear;
Sql.Add(INSERT INTO USUARIOS( );
Sql.Add( NOMEUSUARIO, );
Sql.Add( SENHA, );
Sql.Add( ATIVO) );
Sql.Add(VALUES( );
Sql.Add( :pNOMEUSUARIO, );
Sql.Add( :pSENHA, );
Sql.Add( :pATIVO) );
Params.ParamByName(pNOMEUSUARIO).Value := Teste;
Params.ParamByName(pSENHA ).Value := 1234;
Params.ParamByName(pATIVO ).Value := 1;
ExecSQL;
end;
end;
Se eu retirar o parâmetro pATIVO, e valorizar o campo diretamente na string, ele funciona. Mas da forma como estou fazendo ele da o seguinte erro:
Input parameter count is less then expected. Isso é problema do componente, pois uso esse mesmo código no Delphi 2006 e funciona perfeitamente.
Alguém mais está tendo esse problema?
Abraço!
Mauricio S.
Curtir tópico
+ 0
Responder
Posts
17/10/2011
Gustavo Bretas
Tenta setar as propriedades Params.DataType de acordo com o tipo do campo, e o Params.ParamType como ptInput.
Responder
Gostei + 0
18/10/2011
Mauricio S.
Nossa, eu nem tinha pensando nisso. E realmente funcionou, bastou setar o DataType.
Muito obrigado!
Muito obrigado!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)