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

利用Internet Express技术编写程序,CGI调用Remote Data Module中的方法不成功?解决方法

2012-02-05 
利用Internet Express技术编写程序,CGI调用Remote Data Module中的方法不成功?服务器:windows2003server+I

利用Internet Express技术编写程序,CGI调用Remote Data Module中的方法不成功?
服务器:windows   2003   server+IIS
编程环境:windows   xp2   +   bcb6
我编写个CGI程序.为操作数据库建立Remote   Data   Module中的PostCircleAnt方法

/////////////////////////////////////////////////////////////////////////////
//   TSrtsCGI::TSrtsCGI
/////////////////////////////////////////////////////////////////////////////
__fastcall   TSrtsCGI::TSrtsCGI(TComponent*   Owner)   :   TCRemoteDataModule(Owner)
{
}

STDMETHODIMP   TSrtsCGIImpl::PostCircleAnt(BSTR   INPUT,   VARIANT*   ret)
{  
                TStringList   *TmpList   =   new   TStringList;
                try
                {
                                TmpList-> Text   =   (AnsiString)INPUT;

                                SrtsCGI-> qryUpdateCircleAnt-> Close();
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> Clear();

                                SrtsCGI-> qryUpdateCircleAnt-> SQL-> Clear();
                                SrtsCGI-> qryUpdateCircleAnt-> SQL-> Add( "   Use   SRTS   INSERT   INTO   测试表(YG2KAV,YG3KAH, ");
                                SrtsCGI-> qryUpdateCircleAnt-> SQL-> Add(   "YG3KAV,YG3KBV,YG7CAL,YG7CAR,YG7CBL,YG7CBR,签名,备注)   ");
                                SrtsCGI-> qryUpdateCircleAnt-> SQL-> Add( "VALUES   (   :YG2KAV,:YG3KAH,:YG3KAV,:YG3KBV,:YG7CAL,:YG7CAR,:YG7CBL,:YG7CBR,:签名,:备注) ");

                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG2KAV ")-> Value   =
                                                TmpList-> Values[ "YG2KAV "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG3KAH ")-> Value   =
                                                TmpList-> Values[ "YG3KAH "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG3KAV ")-> Value   =
                                                TmpList-> Values[ "YG3KAV "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG3KBV ")-> Value   =


                                                TmpList-> Values[ "YG2KBV "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG7CAL ")-> Value   =
                                                TmpList-> Values[ "YG7CAL "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG7CAR ")-> Value   =
                                                TmpList-> Values[ "YG7CAR "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG7CBL ")-> Value   =
                                                TmpList-> Values[ "YG7CBL "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "YG7CBR ")-> Value   =
                                                TmpList-> Values[ "YG7CBR "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "签名 ")-> Value   =
                                                TmpList-> Values[ "签名 "];
                                SrtsCGI-> qryUpdateCircleAnt-> Parameters-> ParamByName( "备注 ")-> Value   =
                                                TmpList-> Values[ "备注 "];
                                try
                                {
                                    SrtsCGI-> qryUpdateCircleAnt-> ExecSQL();
                                    *ret   =   Variant( "写入成功 ");
                                }
                                catch(Exception   &exception)


                                {
                                                *ret   =   Variant( "写入失败 ");
                                }
                             
                }
                __finally{
                                delete   TmpList;
                    }


}
在CGI程序中,调用此方法.,
void   __fastcall   TWebModule1::WebModule1WebActionItem2Action(
            TObject   *Sender,   TWebRequest   *Request,   TWebResponse   *Response,
            bool   &Handled)
{

        Variant   INPUT,temp;
          ISrtsCGIDisp   ApSer;
          INPUT   =   Request-> ContentFields-> Text;
          tsc1-> Connected   =   true;
          ApSer.Bind(tsc1-> GetServer());
          temp   =   ApSer-> PostCircleAnt(INPUT);//执行到这步显示超时.(1)
          tsc1-> Connected   =   false;
          Response-> Content   =   temp;

}
经过在rmd中加测试语句,发现(1)句没有调用PostCircleAnt方法?不知道是没有找到   还什么原因反正是不执行,希望各位高人点拨一二,谢谢了.
另外,这个程序在XP和SERVER上运行效果不一样,是否要在SERVE上配置什么?


[解决办法]
帮顶了
[解决办法]
没写过相关的程序,进来学习一下.

热点排行