首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

ADOQuery中的有关问题

2012-03-14 
ADOQuery中的问题。void__fastcallTFormMain::NetRecv(TMessage&Msg){StringstrNet(char*)Msg.LParamStri

ADOQuery中的问题。
void   __fastcall   TFormMain::NetRecv(TMessage   &   Msg)
{
        String   strNet   =   (char   *)Msg.LParam;
        String   Opt         =   strNet.SubString(1,3);
        int         length   =   strNet.Length();

        if(Opt   ==   "DAT "){                   //   写入初检复检数据库数据
                String   PicPath       =   strNet.SubString(strNet.Pos( '{ ')+1,(strNet.Pos( '} ')-strNet.Pos( '{ ')-1));                                                                                   //   图片路径
                String   PicString   =   strNet.SubString(strNet.Pos( '} ')+1,(strNet.Pos( '> ')-strNet.Pos( '} ')-1));                   //   图片名称
                String   tblString   =   strNet.SubString(strNet.Pos( '> ')+1,(strNet.Pos( '` ')-strNet.Pos( '> ')-1));                   //   操作表名
                String   strSQL         =   strNet.SubString(strNet.Pos( '` ')+1,length);                                                                             //   获得插入数据库语言

                if(!FileExists(PicPath)){
                        PicPath   =   "E:\\Picture\\Error.jpg ";                                                     //   图片不存在则保存默认图片
                }

                try{
                        AQ_Opt-> Close();
                        AQ_Opt-> SQL-> Clear();
                        AQ_Opt-> SQL-> Text   =   strSQL;
                        AQ_Opt-> Parameters-> ParamByName( "picture ")-> LoadFromFile(PicPath.c_str(),ftBlob);         //   这里正常
                        AQ_Opt-> ExecSQL();

                        RichEdit1-> Lines-> Add(Now().DateTimeString()   +   ":       Insert   "   +   tblString);
                }catch(...){


                        RichEdit1-> Lines-> Add(Now().DateTimeString()+ ":       Insert   "+   tblString+ "   Error ");
                }

                if(HBlink){
                        try{
                                AQ_HB-> Close();
                                AQ_HB-> SQL-> Clear();
                                AQ_HB-> SQL-> Text   =   strSQL;
                                AQ_HB-> Parameters-> ParamByName( "picture ")-> LoadFromFile(PicPath.c_str(),ftBlob);     //注:这里存在问题
                                AQ_HB-> ExecSQL();

                                strSQL   =   "update   "+   tblString   + "   set   saveflag=1   where   PictureName= ' "   +   PicString   +   " ' ";

                                AQ_Opt-> Close();
                                AQ_Opt-> SQL-> Clear();
                                AQ_Opt-> SQL-> Text   =   strSQL;
                                AQ_Opt-> ExecSQL();

                                RichEdit1-> Lines-> Add(Now().DateTimeString()+ ":       Insert     Server   "+   tblString   );
                        }catch(...){
                               
                        }
                }
        }
}

错误:
AQ_Opt-> Parameters-> ParamByName( "picture ")-> LoadFromFile(PicPath.c_str(),ftBlob);         //   第一次这里正常
AQ_HB-> Parameters-> ParamByName( "picture ")-> LoadFromFile(PicPath.c_str(),ftBlob);     //注:第二次这里存在问题
如果换个方式将两个存储换一下第二个就不能存成功。应该是指针问题
请教决绝办法

[解决办法]
什么问题啊?写出详细问题描述吧!
[解决办法]
up
[解决办法]
什么数据库?什么数据引擎?
对于BOLB字段,如果是非ms数据库,建议不要用ado(至少要升级ADO)。
对oracle,用bde要改参数。

------解决方案--------------------


ding

热点排行