我想将一些图片以二进制的形式存放在Access中 库中有张表图形数据表,表中的Graphdb的字段类型我定义为OLE对象,运行下段代码却发现错误//错误提示:变量或者变量类型不正确,或者不再可以接受的范围内,要不就是与其它数据冲突.怎么解决该问题procedure TForm1.FormCreate(Sender: TObject);
begin
{创建一个临时的ODBC数据源指向一个MsAccess数据库并利用此DSN建立一个数据库连接}AConnection := CreateOleObject('ADODB.Connection');AConnection.Open('Provider=MSDASQL.1;Persist Security Info=False;Data Source=GraphDB');
{建立一个数据集对象并从数据表中提取数据}ARecordSet := CreateOleObject('ADODB.RecordSet');
ARecordSet.open( '图形数据表', AConnection,adopenKeySet ,adLockOptimistic,adCmdTable );end;procedure TForm1.Button1Click(Sender: TObject);
var
fl :file;
temp:byte;
Imgroup:array of byte;
Bytecount: integer;
ds :string;
i :integer;
ByteRead :integer;
begin
if opendialog1.Execute then
Begin
ds:=opendialog1.FileName;
AssignFile( fl , ds);
reset(fl,1);
Bytecount:=FileSize( fl );
End;
//重定义数组容纳fl的字节
setlength(imgroup,ByteCount-1);
//将fl以字节添入imgroup数组
for i:=0 to ByteCount-1 do
Begin
BlockRead(fl , imgroup[i],1 ,ByteRead);
end;
//存储到数据库
ARecordSet.AddNew;
for I:=0 to ByteCount -1 do
Begin
ARecordSet.Fields['GraphDB'].AppendChunk (imgroup[i]);
end;
ARecordSet.movefirst;
//关闭文件 清空数组
closefile(fl);
imgroup:=nil;end;
begin
{创建一个临时的ODBC数据源指向一个MsAccess数据库并利用此DSN建立一个数据库连接}AConnection := CreateOleObject('ADODB.Connection');AConnection.Open('Provider=MSDASQL.1;Persist Security Info=False;Data Source=GraphDB');
{建立一个数据集对象并从数据表中提取数据}ARecordSet := CreateOleObject('ADODB.RecordSet');
ARecordSet.open( '图形数据表', AConnection,adopenKeySet ,adLockOptimistic,adCmdTable );end;procedure TForm1.Button1Click(Sender: TObject);
var
fl :file;
temp:byte;
Imgroup:array of byte;
Bytecount: integer;
ds :string;
i :integer;
ByteRead :integer;
begin
if opendialog1.Execute then
Begin
ds:=opendialog1.FileName;
AssignFile( fl , ds);
reset(fl,1);
Bytecount:=FileSize( fl );
End;
//重定义数组容纳fl的字节
setlength(imgroup,ByteCount-1);
//将fl以字节添入imgroup数组
for i:=0 to ByteCount-1 do
Begin
BlockRead(fl , imgroup[i],1 ,ByteRead);
end;
//存储到数据库
ARecordSet.AddNew;
for I:=0 to ByteCount -1 do
Begin
ARecordSet.Fields['GraphDB'].AppendChunk (imgroup[i]);
end;
ARecordSet.movefirst;
//关闭文件 清空数组
closefile(fl);
imgroup:=nil;end;
解决方案 »
- 多个客户端同时从服务器端下载一个文件,下面代码流程是否有问题?我怎么老出错?
- ActionList中的EditDelete的代码怎么写?
- 怎么成组的使用label?
- 我想去NIIT学习,不知是否有前辈去上过,感觉如何,给我点意见!
- 关于dbgrid的排序,dataset是一个clientdataset,请问怎么单击title怎么排序呢?
- 请问怎样定义三维或者三维以上的数组常量!(注意事数组常量)!
- 有关DELPHI中SPCOMM控件的安装
- 非MDI窗口的菜单合并问题。
- 请教各位Delphi好手一个问题?
- 谁有拦截OnClick事件的例子?麻烦给贴一个.
- 100分求翻译一段代码,c++ to delphi(pascal),应该很简单
- windows的资源管理器怎么做的?
Access存入图片大小问题