Ciao Alberto,
nonostante abbia cercato in rete esempi di utilizzo di uno stream per provare il tuo suggerimento e il fatto che le mie capacità sono a livello di una foca ( con tutto il rispetto per le foche ) non sono riuscito a verificare la tua teoria.
Nonostante questo scrivendo il seguente codice e togliendo a design time i parametri :
ADOStoredProc1.Parameters.Refresh;
showmessage(ADOStoredProc1.Parameters.Items[0].Name); // Ritorna @RETURN_VALUE
showmessage(ADOStoredProc1.Parameters.Items[1].Name); // Ritorna @XmlData
ADOStoredProc1.Parameters.ParamByName('@XmlData').LoadFromFile('C:\temp\xxx.xml',ftBlob);
mi ritorna il seguente errore :
Operand type clash : image is incompatible with nvarchar(max)
ho provato anche con il parametro ftMemo e l'errore è lo stesso.
Visto che ormai ero alla deriva senza una terra dove approdare e senza sapere quello che stavo facendo sono arrivato a scrivere :
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters.ParamByName('@XmlData').LoadFromFile('C:\temp\xxx.xml',ftWideString);
ADOStoredProc1.ExecProc;
cOut := ADOStoredProc1.Parameters.ParamValues['@RETURN_VALUE'];
showmessage(cOut);
Et voilà, funziona, però :
1) cOut mi ritorna 0 ( zero ), e qui devo sentire il fornitore della SP e sperando che l'XML gli sia arrivato.
2) Su XML molto grandi riesco ad inserirli nel tipo WideString senza che venga troncato per limiti ?
Ciao ed un sentito grazie a te e a tutti quelli che hanno avuto il tempo di leggere questo thread.
Enrico Giudici c/o Anthelios.