Ciao a tutti.
devo inserire alcuni valori presi da una query su un database sqlite in un foglio excel.
ho un componente tadoconnection che “punta” ad un file excel tramite odbc.
un altro componente tadocommand che uso per creare i fogli.
ho questa istruzione per creare il foglio:
ExportCmd.Parameters.Clear;
ExportCmd.CommandText :=
Format('Create Table %s ' +
'(%s string , %s string, %s string, %s string, %s integer, %s integer, ' +
'%s string, %s double, %s double, %s integer, %s double, ' +
'%s double, %s double, ' +
'%s double, %s double, %s double, %s double, ' +
'%s double, %s double, %s double, %s double)',
[cTN_TestDetails,
cTF_TD_Customer, cTF_TD_Press, cTF_TD_PU, cTF_TD_Job, cTF_TD_TestId, cTF_TD_TestType,
cTF_TD_TestName, cTF_TD_StartTime, cTF_TD_EndTime, cTF_TD_PaperWidth, cTF_TD_StartPaperLen,
cTF_TD_EndPaperLen, cTF_TD_PaperLen,
cTF_TD_StartInkWeight, cTF_TD_EndInkWeight, cTF_TD_RefillInkWeight, cTF_TD_InkConsumption,
cTF_TD_StartSolWeight, cTF_TD_EndSolWeight, cTF_TD_RefillSolWeight, cTF_TD_SolConsumption]);
ExportCmd.Execute;
e fin qui sembra funzionare, il problema è nell' inserimento dei dati.
cmdStr := Format('INSERT INTO %s (' +
'%s)'+
'VALUES(' +
':pPress)',
[cTN_TestDetails,
cTF_TD_Press]);
ExportCmd.Parameters.Clear;
ExportCmd.CommandText := cmdStr;
ExportCmd.Execute;
ExportCmd.Parameters.parambyname('pPress').value := FDqryExport.FieldbyName('Press').VALUE;
Dove FDqryExport è una query firedac che punta sul database sqlite.
Per semplificare ora sto inserendo solo un campo, ma quando esegue l istruzione ExportCmd.Execute; ricevo l'errore “tipo di dato non valido”..
ho provato anche a modificare FDqryExport.FieldbyName('Press').VALUE con FDqryExport.FieldbyName('Press').asstring , ma stesso errore,
Ho pero' notato che se faccio l inserimento su un campo integer o double allora funziona, insomma il problema sembra essere “solo” sui campi string.
ho provato a sostituire "string" con “text”, ma ricevo lo stesso errore..
qualche suggerimento su come risolvere?
grazie mille