在另一个程序调用时报如下错误:
Access violation at address 048D252C IN module'cstpricedll.dll',read of address
00000034报完后单击确定数据出来,
我应该怎样处理才将这句烦人的错误消失???高手请进!

解决方案 »

  1.   

    我写的函数是这样的:function Showfrm(AHandle:THandle;flag:shortstring;connectstr:String):boolean;stdcall;
     function Showfrm(AHandle:THandle;flag:shortstring;connectstr:String):boolean;stdcall; //create 2004-4-13  ming
      var
      PriLevform:TPriLevform;
      EmpPriRigform:TEmpPriRigform;
      gdslevform:Tgdslevform;
      cstlevform:Tcstlevform;
      gdscstrefform:Tgdscstrefform;
      cp_diffLogform:Tcp_diffLogform;
      CP_EdtLOGform:TCP_EdtLOGform;
      GdsCstLevRefForm:TGdsCstLevRefForm;
      CHECK_GDSCSTform:TCHECK_GDSCSTform;
      begin
       Application.Handle:=AHandle;
      Application.CreateForm(TMA_MENU, MA_MENU);
      Application.CreateForm(TVD, VD);
      Application.CreateForm(TINIT, INIT);
       INIT.Database1.Params.Text:=connectstr;
    其中我传参数时
    showfrm(application.handle,'1','INIT.Database1.Params.Text')
    其中'INIT.Database1.Params.Text'系统报sqlserver数据库找不到,
    如果把这句话写成这样就可以
    showfrm(application.handle,'1','DATABASE NAME=ven'
    +#13+'SERVER NAME=ven'
    +#13+'USER NAME=tiger'
    +#13+'OPEN MODE=READ/WRITE'
    +#13+'SCHEMA CACHE SIZE=8'
    +#13+'BLOB EDIT LOGGING='
    +#13+'LANGDRIVER='
    +#13+'SQLQRYMODE='
    +#13+'SQLPASSTHRU MODE=SHARED AUTOCOMMIT'
    +#13+'DATE MODE=0'
    +#13+'SCHEMA CACHE TIME=-1'
    +#13+'MAX QUERY TIME=300'
    +#13+'MAX ROWS=-1'
    +#13+'BATCH COUNT=200'
    +#13+'ENABLE SCHEMA CACHE=FALSE'
    +#13+'SCHEMA CACHE DIR='
    +#13+'HOST NAME='
    +#13+'APPLICATION NAME='
    +#13+'NATIONAL LANG NAME='
    +#13+'ENABLE BCD=TRUE'
    +#13+'TDS PACKET SIZE=4096'
    +#13+'BLOBS TO CACHE=1024'
    +#13+'BLOB SIZE=2048'
    +#13+'PASSWORD=');