300分!----求教三层实现公文包模式的例子!

yuyulily 2002-09-04 05:06:09
我要在一个三层项目中使用公文包模式,但有很多问题,现300分!----求三层实现公文包模式的好用的例子!
...全文
31 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyulily 2002-09-08
  • 打赏
  • 举报
回复
Libran() :我再试试,有问题还得请教啊!老弟。~_~
yuyulily 2002-09-08
  • 打赏
  • 举报
回复
哦,你是根据这个啊,那是我申请信箱是自动给编号啊,你也在加班?
Libran 2002-09-08
  • 打赏
  • 举报
回复
yuyu6906@163.com——6906?不是出身年月啊,那是我瞎猜了
yuyulily 2002-09-08
  • 打赏
  • 举报
回复
Libran() : 69年6月?真得尊称一声老兄了^_^给您作揖~~~


呵呵,此话怎讲啊?谁说我是69年6月的了?哈哈,那我不是都30多了?你的消息有误啊!
Libran 2002-09-07
  • 打赏
  • 举报
回复
pzoon老弟,你够很,记得给我提成!

yuyulily:69年6月?真得尊称一声老兄了^_^给您作揖~~~
xiaoyu 2002-09-06
  • 打赏
  • 举报
回复
if(online)
{
clientDataSet->Open();
}
else
clientdataset->loadfromfile(...);
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
谢谢Libran() 的帮助,先有你100分了,现在过滤没问题了,但我用:ClientDataSet->Refresh() 之后没有更新记录且CDS文件中原有的数据也没了,只剩下表的字段了,怎么回事啊?
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
好啊,呵呵
pzoon 2002-09-06
  • 打赏
  • 举报
回复
好,这个问题不难,我来帮你问问,你的话一定算术呀
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
pzoon(pzoon):
问题解决,给你1000也没问题啊,呵呵

Libran() :
我的信箱: yuyu6906@163.com
pzoon 2002-09-06
  • 打赏
  • 举报
回复
老大,你的帖子很多么 ,我上来了(嘿嘿);给我分吧!!!要500
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
Libran() 我的确实是没有了,可以把你的例子发给我看看吗?
Libran 2002-09-06
  • 打赏
  • 举报
回复
我试了,没问题呀!
你仔细查查看,是否哪里不小心加了限制条件什么的?
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
我的PacketRecords=-1
void __fastcall TFormMain::Button4Click(TObject *Sender)
{
ClientDataSet1->Filtered=false;
ClientDataSet1->Refresh();
}
记录还是没有了?且本地文件没有编辑过,我是改了数据库中的数据,怎么回事啊??
Libran 2002-09-06
  • 打赏
  • 举报
回复
说明一下:
ClientDataModule是本地的DataModule名,ClientDataSet放在其上;
服务器端用的ADOTable,故ClientDataSet1->CommandText="TmpTbl",TmpTbl为一表名;
以上代码中ClientDataSet2也应为ClientDataSet1;
数据库为MS SQL Server 2000。
Libran 2002-09-06
  • 打赏
  • 举报
回复
刚试了一下,以下代码运行是可以的:
//连接数据库:
{
ClientDataModule->ClientDataSet2->Close();
ClientDataModule->ClientDataSet2->CommandText="TmpTbl";
ClientDataModule->ClientDataSet2->Open();
ShowMessage("Opened!");
}

//保存到文件,断开数据库连接:
{
ClientDataModule->ClientDataSet1->SaveToFile("aa");
ClientDataModule->ClientDataSet1->Close();
}

//打开本地文件:
{
//ClientDataModule->ClientDataSet1->Close();
ClientDataModule->ClientDataSet1->LoadFromFile("aa");
}

//刷新记录:
{
ClientDataModule->ClientDataSet1->Refresh();
}

我没加过滤条件,你应该及时将过滤条件清空或改为正确内容,或者不需要过滤时指定Filtered为fasle,否则也可能造成无记录显示
yuyulily 2002-09-06
  • 打赏
  • 举报
回复
老大,我的PacketRecords 是 -1啊
Libran 2002-09-06
  • 打赏
  • 举报
回复
设:
ClientDataSet->PacketRecords = -1;//一次返回全部记录
另外:
若ClientDataSet->PacketRecords = 0;//仅返回字段名,应该就是你的情况若ClientDataSet->PacketRecords = n;//n>0,一次返回前n条记录,需要时再向数据库请求
土著巫师 2002-09-06
  • 打赏
  • 举报
回复
这个问题要好好讨论一下,帮你UP一下。说不定哪天就要用到的好东东。
Libran 2002-09-05
  • 打赏
  • 举报
回复
用DataSetProvider(在服务器端)与ClientDataSet(在客户端)可以实现三层公文包模式。
当数据库文件有更新,可以用ReFresh方法更新本地数据。
要控制是否从数据库/文件读取数据,把FileName属性置为空,在调用LoadFromFile方法时用参数指定文件名。
从CDS文件中筛选数据可以设定过滤器(Filter)属性。
加载更多回复(11)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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