设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5735|回复: 16
打印 上一主题 下一主题

MDB的十宗罪.

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-5 02:41:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
17#
发表于 2005-9-2 20:50:00 | 只看该作者
謝謝!我當時沒有看查询分析器的Messages, 只是發現通過查詢可以﹐而存儲過程及ADO(當然就沒用.nextrecordset)都不行﹐索性就用在MDB中用通過查詢算了。現在我的MDB在轉ADP或其他開發工具時就又解決了一個基本問題了。Access的數據庫應用開發功能上有很多方面方便過VB , Delphi,及.net. 但就是感覺控件少了些﹐而且調用了API 窗體效果又很不穩定. Access如不解決這些問題﹐我肯定要向其他開發工具發展。現在我的方法是用總結我VBA中的經驗, 盡可能將現有的程序都轉為類﹐為我向任何其他面向對象的開發工具轉移打下基礎。轉類工作我已完成過半, 并已有部分轉為了vb.net。
16#
 楼主| 发表于 2005-9-2 18:54:00 | 只看该作者
.nextRecord是求下一个记录集。当你的存储过程有N个select语句时,你就要用到这个求得下一个,下两个记录集...不用.nextrecord不是报错,而是你的第一个select语句的是不会返回记录的,它的记录集是关闭的。还有一点,当你双击ADP的存储过程时,只是默认显示第一个记录集。如果你在SQL 2K的查询分析器去运行存储过程,就会发现N个记录集。最后一点,如果真的是想提高自己,请放弃ACCESS。向delphi或.net发展。
15#
发表于 2005-9-2 18:28:00 | 只看该作者
謝謝指點.ADO 使用了 .nextRecord 是可以返回數據(不用增加begin end)﹐ 但我的ACCESS 2000 ADP中 點擊修改后的存儲過程(增加begin end)仍然無法返回數據。另請指點 為什么要用.nextRecord? 不用他為什么會報錯? 是否真的存在兩個記錄集?
14#
 楼主| 发表于 2005-9-2 06:12:00 | 只看该作者
嘿嘿,你的ADO还是菜了点.存储过程改为这样:Alter PROCEDURE dbo.Identi

ASbeginSELECT   IDENTITY (int, 1, 1) AS AA,*

INTO         #tempA

FROM           ABCselect * from #tempAendADO求#tempA的内容  Dim r As Recordset

  



  Set r = GetTSQLProc(".....")    ''''执行存储过程,返回记录集到r

  



  Set r = r.NextRecordset()



  Debug.Print r.GetString()      ''''可以看到#tempA的内容[em05]
13#
发表于 2005-9-1 23:43:00 | 只看该作者
是想返回客戶端﹐在Query Analyze中是可以得到值的﹐但在ADP中就不行。有時不一定是臨時表﹐也一樣無法返回﹐用ADO也不行﹐但MDB中的通過查詢就可以。不知所以然﹐煩請指點.謝謝!
12#
 楼主| 发表于 2005-9-1 00:50:00 | 只看该作者
你上面的这个东西是用来干什么的?而且,你是想把数据返回客户端吧,对不对?
11#
发表于 2005-8-31 20:08:00 | 只看该作者
請教﹕如何使以下存儲過程返回值, 為什么臨時表需要?Alter PROCEDURE dbo.Identi

AS

SELECT   IDENTITY (int, 1, 1) AS AA,*

INTO         #tempA

FROM            sales
10#
发表于 2005-8-31 04:46:00 | 只看该作者
存储过程没有定义返回变量,就不能返回值。ODBC连接SQL2000时,除了 select 取数据,其他写入的SQL语句,都翻译成调用SQL2000系统的存储过程执行,一行一行的追加,一行一行的更新,一行一行的删除。一行调用两个存储过程,等得我发火。以后都不用ODBC了。
9#
发表于 2005-8-27 06:14:00 | 只看该作者
數據庫是與開發工具分離了﹐ADP本身并不能建表﹐它不是數據庫。MDB即可象ADP一樣管理SQL 2000又可以有本地表。這是MDB與ADP的本質差別﹐當然對于只有MSDE的人﹐ADP是很好的前端工具﹐如果已有SQL2000﹐再用ADP就沒什么意義了。說到底在真正的數據庫已改為SQL2000等高端服務器時﹐ADP 與MDB 沒有什么區別﹐主要是用它簡單的VBA罷了。請教以下存儲過程為什么不能返回值:Alter PROCEDURE dbo.Identi

AS SELECT   IDENTITY (int, 1, 1) AS AA,*

INTO         #tempA

FROM           ABCselect * from #tempA另請教以下兩種ODBC的區別﹐我連接表與通過查詢用第一種做連接﹐代碼中的用Provider =SQLOLEDB;Data source=172.000.000. 210;user id=sunpo;password=pwd; initial catalog=molding.1.ODBC;DRIVER=SQL Server;SERVER=172.000.000.210;UID=SunPoWD=Pwd;DATABASE=ABC2.ODBC;DSN=molding;UID=sunpoWD=pwd;DATABASE=molding;代碼中用ADO連接應該不會有問題吧﹐至于ODBC﹐我是不太懂﹐主要是做個連接表管理數據(做排序﹐刪除等好方便).
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-13 10:16 , Processed in 0.084567 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表