用BDE连接的SERVER中的方法为什么不执行QUERY?

fsstolw 2002-11-17 08:41:25
我的应用服务器是用BDE连接的ORACLE数据库,在上面定义了一个方法,但很奇怪的是其中的Query不能执行,这是为什么?Query中的语句在CB中的database explore中是执行正常的,无非就是如下的语句:
Query1->SQL->Add("select * from Minfo where Name = 'Liu'");
Query1->Open();
...全文
55 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsstolw 2002-11-18
  • 打赏
  • 举报
回复
我对C++了解太少,请帮我看一下:
1、变量strParamValue的定义和用法是否正确?
2、我在客户端应该怎么取strParamValue的值?请给出详细写法。
谢谢!当然,这点分就太少了,我会加的!
syq 2002-11-18
  • 打赏
  • 举报
回复
请问在BCB里怎么编写word的查找功能,特别是怎么实现在有选择时查找的情况?
Windows里的记事本的查找功能和word里边的是不一样的,你们可以试一下,就是在有选择了文本的情况下查找
RomanticProgrammer 2002-11-17
  • 打赏
  • 举报
回复
单步执行你的程序,看看这句执行后你的饿strParamValue的值:
*strParamValue = TempValue2.SubString(2,4);
fsstolw 2002-11-17
  • 打赏
  • 举报
回复
还没有呢,我的SERVER上有个方法是这样的:
STDMETHODIMP TDMStorageImpl::GetParamID(BSTR strParamName,
BSTR* strParamValue)
{
//根据表名从系统参数表中取得该表的当前ID
AnsiString ParamName ;
WideString TempValue2;
AnsiString TempValue1;

ParamName = Trim(strParamName);
try
{
DMStorage->QueryOperate->Close();
DMStorage->QueryOperate->SQL->Clear();
DMStorage->QueryOperate->SQL->Add("select * from AppParameters ");
DMStorage->QueryOperate->SQL->Add("where ParamName = :TempParamName");
DMStorage->QueryOperate->ParamByName("TempParamName")->AsString = ParamName;
DMStorage->QueryOperate->Open();

if(DMStorage->QueryOperate->RecordCount > 0)
{
TempValue1 = DMStorage->QueryOperate->FieldByName("ParamValue")->AsString;

TempValue2 = WideString(IntToStr(TempValue1.ToInt()+10000+1)) ;
*strParamValue = TempValue2.SubString(2,4);

Form1->Edit2->Text = *strParamValue ;
Form1->Update();

//修改参数表中的ID值
DMStorage->QueryOperate->Close();
DMStorage->QueryOperate->SQL->Clear();
DMStorage->QueryOperate->SQL->Add("update AppParameters set ");
DMStorage->QueryOperate->SQL->Add("ParamValue = :TempValue ");
DMStorage->QueryOperate->SQL->Add("where ParamName = :TempParamName");
DMStorage->QueryOperate->ParamByName("TempParamName")->AsString = ParamName;
DMStorage->QueryOperate->ParamByName("TempValue")->AsString = *strParamValue;
DMStorage->QueryOperate->ExecSQL();

DMStorage->QueryOperate->Close();

return 0;
}
else
{
DMStorage->QueryOperate->Close();
return 1;
}
}
catch(Exception &E)
{
return -1;
}
}
作用是想传 一个参数给它,SERVER会根据这个参数取出一个ID值(并加1)后传给前端,但是为什么取不到这个值呢?
RomanticProgrammer 2002-11-17
  • 打赏
  • 举报
回复
解决了就好..呵呵呵..
fsstolw 2002-11-17
  • 打赏
  • 举报
回复
这个问题我已经解决啦!并不是BDE不支持ORACLE8I,我只是把原来的应用服务器的Project的设置改了一下,原来的DM是Available Form,我把它放在左边,即变成Auto-Create Forms,问题就解决啦!
fsstolw 2002-11-17
  • 打赏
  • 举报
回复
呵呵,看来孙悟空真不少喔!
PlayerBox 2002-11-17
  • 打赏
  • 举报
回复
我是兰企鹅的马甲..多谢你发短信恭喜我...呵呵.
RomanticProgrammer(兰企鹅)
PlayerBox 2002-11-17
  • 打赏
  • 举报
回复
BDE 好像不支持ORACLE8i以上的版本..
oracle我没有用过.不知道原因,只是猜测..
建议你用ADO..据说ADO连接是可以的..当然只是道听途说.因为我没有用过.
我只用SQL Server

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧