关于F1Book:如何用ODBCBindParameter函数绑定dbase(dbf)表中的字符型字段(100分)

  • 主题发起人 主题发起人 bells
  • 开始时间 开始时间
B

bells

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把F1Book中的数据写道dBase(dbf)文件中,其中要用到ODBCBindParameter函数,
但就是无法绑定字符型的字段,即F1CDataChar,总是提示‘非法的精确度数值’,
但可绑定数值型字段。源带码如下:
ConnStr := 'Driver={Microsoft dBASE Driver (*.dbf)};UID=admin;UserCommitSync=Yes;
DBQ=E:/test' + ';DriverId=21;FIL=dBase III';
f1book1.ODBCConnect(ConnStr,True,RetCode);
Connstr:='insert into test (a) values (?)';
f1book1.ODBCPrepareex(Connstr);
f1book1.ODBCBindParameterex(1,1,F1CDataChar);
f1book1.ODBCExecuteex(1,1);
请指教。
万分感谢。
 
这段代码也许对你有帮助:
procedure TForm1.btnConnectClick(Sender: TObject);
var
Connstr : widestring;
RetCode : smallint;
begin
ConnStr := 'DSN=F1ODBCDemo;DBQ=' + ExtractFilePath(Application.ExeName)
+ '/db2.mdb;DriverId=25;FIL=MS';
try
fbook1.ODBCConnect(ConnStr,True,RetCode);
except
Showmessage('Connect DataBase failed!');
end;
end;
procedure TForm1.btnDisconnClick(Sender: TObject);
begin
fbook1.ODBCDisconnect;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
strSQL : widestring;
begin
fbook1.Sheet := 1;
strSQL := 'Select * from Employee_Table';
QueryTable(strSQL);
end;
procedure TForm1.QueryTable(strSQL: widestring);
var
bForceShowDlg, bSetColNames,bSetColFormats, bSetColWidths,bSetMaxRC :
wordbool;
RetCode : smallint;
begin
bForceShowDlg := False;
bSetColNames := True;
bSetColFormats := True;
bSetColWidths := True;
bSetMaxRC := True;
screen.Cursor := crHourGlass;
try
fbook1.ODBCQuery(strSQL,1,1,bForceShowDlg,bSetColNames,bSetColFormats,
bSetColWidths,bSetMaxRC,RetCode);
except
ShowMessage(fbook1.ODBCErrorMsg);
end;
screen.Cursor := crDefault;
end;
 
后退
顶部