for i :=2 to ExcelRowCount do
begin
if length(trim(Sheet.Cells[i,1 ].Value)) <=0 then break;
With ADOQuery1 do
begin
close;
SQL.Clear;
SQL.text:=('Select * from ICSale where FHeadSelfI0461= '''+ strtointDef(Sheet.Cells[i,1].Value,0)+'''');
因為字符段是int型的,而匯入的excel 第一行為標題行,無法把列屬性改為數值型,之前報錯,把sql.add 轉換為sql.text 正常了,但是需要把字符型別改為int型,用strtoint 或者strtointdef 都報錯
[錯誤] Unit1.pas(91): Incompatible types: 'String' and 'Integer' excel里面絕對是int型資料
uj5u.com熱心網友回復:
Sheet.Cells[i,1].Value是什么型別?uj5u.com熱心網友回復:
strtointDef(Sheet.Cells[i,1].Value,0) 這里用錯函式了吧 這個函式回傳值不是字串型別uj5u.com熱心網友回復:
用引數化查詢:ADOQuery1.SQL.text := 'Select * from ICSale where FHeadSelfI0461= :FHeadSelfI0461';
ADOQuery1.Parameters.ParamByName('FHeadSelfI0461').Value := Sheet.Cells[i,1].Value;
uj5u.com熱心網友回復:
'Select * from ICSale where FHeadSelfI0461= '''+ strtointDef(Sheet.Cells[i,1].Value,0)+'''' 引號多了對,=后面的不是字符了改為 'Select * from ICSale where FHeadSelfI0461= ''+ strtointDef(Sheet.Cells[i,1].Value,0)+'''
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/14329.html
標籤:數據庫相關
上一篇:ADOQuyer的問題,求教
