用BDE连接ORACLE遇到一个巨难题,是不是BDE有BUG?各位大虾来救命~~~~(有源码)

猎人66 2001-11-24 11:35:59
我用BDE连接ORACLE数据库,用INSERT插入其它类型的值一切好使,
但当我用TBlobStream插入BLOB类型的值时就提示Cannot modify a read-only dataset,而我用Database Desktop手工插入BLOB却OK,
是不是我的操作或者配置有什么问题?

源码如下:

AnsiString TmpStr="select jcajbh,jcbgh,fjbm,jcsx,jcjl1 from jcjl where "+SqlLine.SubString(11,iPos1-12);

ExecuteSql->Active=false;
ExecuteSql->SQL->Text=TmpStr;
ExecuteSql->Active=true;
ExecuteSql->Edit();
TBlobStream* Blob=new TBlobStream((TBlobField*)ExecuteSql->FieldByName("jcsx"),bmWrite);

TmpStr=SqlLine.SubString(iPos1+4,iPos2-iPos1-4);
Blob->Read(TmpStr.c_str(),TmpStr.Length());
delete Blob;
TmpStr=SqlLine.SubString(iPos2+6,SqlLine.Length()-iPos2-5);
Blob=new TBlobStream((TBlobField*)ExecuteSql->FieldByName("jcjl1"),bmWrite);

Blob->Read(TmpStr.c_str(),TmpStr.Length());
delete Blob;
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
猎人66 2001-11-26
  • 打赏
  • 举报
回复
唉,我感觉CB好像真的不如Delphi似的,
至少人气不如人家Delphi论坛啊,
虽然经常中用CB,但对人我都不好意思我用CB,我都说我用VC,虽然我VC不精通~~~
猎人66 2001-11-25
  • 打赏
  • 举报
回复
各位大虾:当我把EexcuteSql(即TQuery)的RequestLive属性改为true之后,结果连Select 语句都执行不了,一执就提示:Table does not exist,

真是麻烦啊,我用ADO一点事都没有,这是不是BDE的BUG啊?
hello_wyq 2001-11-25
  • 打赏
  • 举报
回复
你不是用bmWrite吗,怎么一会儿用read方法?
猎人66 2001-11-25
  • 打赏
  • 举报
回复
谢谢lxpbuaa(千古凭高),我看看啊,我这个ExecuteSql啊,其初始的Fields是为空的,执行SQL之后才产生的~~~~
lxpbuaa 2001-11-25
  • 打赏
  • 举报
回复
如果程序没有问题,你可以看看你在ExecuteSql的Fields Editor中是否将blob对应字段的readonly设为了true。
猎人66 2001-11-25
  • 打赏
  • 举报
回复
还是不行呢,对了被充一下,我用的是TQuery啊,我只在一调用Edit()方法就出了上述的错误信息,而且我把MODE改为bmReadWrite也同样不行,
大虾们救命啊!!!
猎人66 2001-11-25
  • 打赏
  • 举报
回复
十分(如果成功一人十分,嘿嘿~~~)感谢大虾,我试试后再给分~~~
ggyy 2001-11-25
  • 打赏
  • 举报
回复
给你一个列子吧!
void __fastcall TForm1::Button3Click(TObject *Sender)

{
TBlobStream *pStream;

Table1->Edit();
if (Table1->State == dsEdit)
{
pStream = Table1->CreateBlobStream(Table1->FieldByName("Notes"), bmReadWrite);
try
{
AnsiString S = "This line will be added to the end";
pStream->Seek(0, 2); // Seek 0 bytes from the stream's end point
pStream->Write(S.c_str(), S.Length());
Table1->Post();
}
__finally
{
delete pStream;

}
}
}

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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