Italian community of Lazarus and Free Pascal

Programmazione => Componenti Aggiuntivi => Discussione aperta da: Lorenzo il Ottobre 26, 2026, 11:24:16 AM

Titolo: TZStoredProc: Probabile bug
Inserito da: Lorenzo il Ottobre 26, 2026, 11:24:16 AM
Probabile Bug anche in Zeos 8.0
Questo componente sembra che non riesca a riconoscere i parametri(anche quelli inseriti manualmente attraverso il Component Inspector.

Se volete provare,vi allego il codice di esempio condensato in una procedura che inserisce in una stored.

Questa è la Stored Procedure per un database MySQL

Per rendere funzioanle l'esempio si crea una tabella con i campi sotto(nel mio caso una banale tabella dal nome Anagrafe e con i due campi,uno di stringhe e l'altro numerico)


CREATE PROCEDURE mydb.sample_InsertRecord(
IN Pnome VARCHAR(100)
,
IN Peta INTEGER
)
    MODIFIES SQL DATA
    SQL SECURITY INVOKER
BEGIN
 INSERT INTO anagrafe(nome,eta) VALUES(Pnome,Peta);
END;

Qua sotto una procedura Pascal che dovrebbe richiamarla per inserire dati

procedure TForm1.InsertDataOnStored();
var
  I: Integer;
  SP: TZStoredProc;
begin
  try
    SP:= TZStoredProc.Create(nil);
    SP.Connection:= ZConnection1;
    try
      with SP do begin
        Params.Add;
        with Params[0] do begin
          ParamType:= ptInput;
          Name:= 'Pnome';
          DataType:= ftString;
        end;
        Params.Add;
        with Params[1] do begin
          ParamType:= ptInput;
          Name:= 'Peta';
          DataType:= ftInteger;
        end;
        StoredProcName:= 'sample_InsertRecord';
        Params.ParamByName('Pnome').AsString:= 'Rocco';
        Params.ParamByName('Peta').AsInteger:= 110;
        ExecSQL;
      end;
    finally
      ShowMessage('FATTO!');
    end;
  finally
    FreeAndNil(SP);
  end;
end;       

Come errore darà il fatto di non riconoscere il primo parametro.
Se provate a visualizzare il numero di parametri,darà 0.
Io ho provato ad inserire i parametri via codice,ma anche attraverso l'Object Inspector,il risultato pare che non cambi.

Provatelo prima di rispondermi, al di fuori dell'esito non saprei dare risposte...resto in modalità "praticone".