TGraphic是抽象类,你不能直接创建它的对象的。你可以这样:TBlobField( table1.fields[4] ).loadfromfile(opendialog1.filename);更新直接

解决方案 »

  1.   

    >为何table1.fields[4].assign(graphic1)而不是fields[5],image字段放什么数据呢?应该是fields[5]或用fieldbyname('image')更好, 这是谁的程序?你都不知道怎么写?另外,不应该用数据类型的名称做字段名,容易混淆。
      

  2.   

    阿贵,你好!
    这段程序我是从本网站的开发文档中看到的,运行不了.
    我按你的说法,把table1.fields[4].assign(graphic1);换成了TBlobField( table1.fields[4] ).loadfromfile(opendialog1.filename);
    可还是运行不了,提示同样的错误.
    如果是fieldbyname('image'),那pic里面放什么呢?
      

  3.   

    你这样试试啊,我用过没有问题的啊
    var
     picture1;Tpicture;
    begin
     picture1:=tpicture.create;
     picture1.loadformfile(openpicturedialog1.filename);
     with table1 do 
      begin 
           insert;
           .....;//省略
           fieldbyname('image').assign(picture1);
           ....//其它字段
           post;
    edn;
    picture1.free;
    end;
    绝对没问题的
      

  4.   

    你数据存储的方式不对啊
    create table myfrieds
      (name varchar(15) notnull,//0
         telephone varchar(12),//1
         address varchar(30),//2
         zipvarchar(8),//3
         picture varchar(15),//4
         image image);//5 image才是存储图像的字段啊