李
李崇文
Unregistered / Unconfirmed
GUEST, unregistred user!
数据库中有一个表,有三个字段,分别为ID,BinData,ImageData,字段定
义如下:
ID int
BinData varbinary(1152)
ImageData Image
三层结构
服务器端有一个TQuery和TDataSetProvider
我想通过客户端的TClientDataSet进行读出和存取,写了一段代码,
但运行老提示错误信息:
变量或者类型不正确,或者不可以接受的范围之内,要不就与其他数据
相冲突。
我的程序代码如下:
procedure Save(AID: string;
ABinData: OleVariant;
AImg: TPicture);
var
SQL: string;
begin
SQL := 'INSERT INTO Finger(ID,BinData,ImageData) '+
'VALUESpID,BinData,ImageData)';
cdsInsert.Close;
cdsInsert.CommandText := SQL;
cdsInsert.Params.ParamByName('pID').AsInteger := StrToInt(AID);
cdsInsert.Params.ParamByName('pBinData').Value := ABinData;
cdsInsert.Params.ParamByName('pImageData').Assign(AImageData);
cdsInsert.Execute;
end;
如果改为如下代码这一切正常:
procedure Save(AID: string;
ABinData: OleVariant;
AImg: TPicture);
var
SQL: string;
begin
SQL := 'SELECT * FROM TableName';
cdsInsert.Close;
cdsInsert.CommandText := SQL;
cdsInsert.Open;
cdsInsert.Insert;
cdsInsert.FieldByName('ID').AsInteger := StrToInt(AID);
cdsInsert.FieldByName('BinData').Value := ABinData;
cdsInsert.FieldByName('ImageData').Assign(AImageData);
cdsInsert.Post;
end;
但我想用SQL操作,不只怎么用SQL实现插入和修改?
义如下:
ID int
BinData varbinary(1152)
ImageData Image
三层结构
服务器端有一个TQuery和TDataSetProvider
我想通过客户端的TClientDataSet进行读出和存取,写了一段代码,
但运行老提示错误信息:
变量或者类型不正确,或者不可以接受的范围之内,要不就与其他数据
相冲突。
我的程序代码如下:
procedure Save(AID: string;
ABinData: OleVariant;
AImg: TPicture);
var
SQL: string;
begin
SQL := 'INSERT INTO Finger(ID,BinData,ImageData) '+
'VALUESpID,BinData,ImageData)';
cdsInsert.Close;
cdsInsert.CommandText := SQL;
cdsInsert.Params.ParamByName('pID').AsInteger := StrToInt(AID);
cdsInsert.Params.ParamByName('pBinData').Value := ABinData;
cdsInsert.Params.ParamByName('pImageData').Assign(AImageData);
cdsInsert.Execute;
end;
如果改为如下代码这一切正常:
procedure Save(AID: string;
ABinData: OleVariant;
AImg: TPicture);
var
SQL: string;
begin
SQL := 'SELECT * FROM TableName';
cdsInsert.Close;
cdsInsert.CommandText := SQL;
cdsInsert.Open;
cdsInsert.Insert;
cdsInsert.FieldByName('ID').AsInteger := StrToInt(AID);
cdsInsert.FieldByName('BinData').Value := ABinData;
cdsInsert.FieldByName('ImageData').Assign(AImageData);
cdsInsert.Post;
end;
但我想用SQL操作,不只怎么用SQL实现插入和修改?