|
ibmas400 回复于:2005-03-13 20:38:21
|
这么实用的帖子居然没人顶。。。 :em06:
我顶。。顶。。顶。。。。 :mrgreen:
qingzhou辛苦了。
|
pl421 回复于:2005-03-13 21:26:23
|
顶,收藏.
|
michael9406 回复于:2005-03-14 08:20:52
|
哪天俺一个VBA的,
|
mario663 回复于:2005-03-14 08:35:08
|
很好!顶!
|
just a kid 回复于:2005-03-14 09:50:40
|
实用又养眼,顶上去,感谢QINGZHOU
|
亿城雪 回复于:2005-03-14 10:11:32
|
好贴,step by step。很容易看懂。那天有空试一下。
|
胖老头 回复于:2005-03-14 12:41:27
|
挺好,坚决支持。
|
aiyoo 回复于:2005-03-14 16:23:28
|
我好命苦啊.
连接主机输入用户密码后出错.
楼主,这个是不是主机权限控制了??
|
stiffmiao 回复于:2005-03-14 17:04:07
|
顶。。顶。。。。
|
polkmn 回复于:2005-03-17 12:40:06
|
Very Good
|
longdas 回复于:2005-03-17 14:29:46
|
真是好。。。。
我顶了。
|
crazymonkey 回复于:2005-03-18 13:38:12
|
在solaris下是不是也差不多啊
|
60133056 回复于:2005-03-19 18:43:51
|
感谢 并狂顶
|
ibmas400 回复于:2005-03-20 08:56:02
|
[quote:8e4211e6bd="crazymonkey"]在solaris下是不是也差不多啊[/quote:8e4211e6bd]
solaris是SUN的UNIX专用操作系统,你本地环境在SUN后台安装了什么关系型数据库?Oracle、Informix还是Sybase?
通过其数据库驱动在PC端创建对应的MS ODBC连接、然后再启动EXCEL,我想原理是一样的,都可以访问。
你身边有solaris这个环境、可以自行测试一下,然后再说说测试结果。 8)
|
dreamflight 回复于:2005-03-20 11:13:49
|
顶一下,礼拜一回公司试试看
|
胖有型 回复于:2005-03-24 10:33:15
|
实在是太。。。。。好用了。
感谢版主!
|
fairyboy 回复于:2005-03-24 13:40:56
|
试过了,我刚好需要这方面的资料,谢谢楼主了,有个问题可以问一下吗?
如果在EXCEL 中对数据进行修改,那么 在AS400的DB2中的数据也会随之修改吗?
|
qingzhou 回复于:2005-03-24 14:14:12
|
[quote:009832be7d="fairyboy"]试过了,我刚好需要这方面的资料,谢谢楼主了,有个问题可以问一下吗?
如果在EXCEL 中对数据进行修改,那么 在AS400的DB2中的数据也会随之修改吗?[/quote:009832be7d]
Microsoft Excel →数据→导入外部数据→新建数据库[color=red:009832be7d]查询[/color:009832be7d]、所以这种方法只适合从DB2/400中筛选出适合条件的数据到Excel表中。
如果想通过Microsoft Excel →ODBC→DB2/400实现[color=red:009832be7d]更新[/color:009832be7d]数据,需要使用VBA+ADO方式才能满足要求。
|
linyueagle 回复于:2005-03-24 16:14:24
|
顶 感谢!!!
|
blogliou 回复于:2005-03-25 11:09:59
|
不错,有用,顶!
|
pollux66 回复于:2005-08-24 10:57:12
|
太好了,
太好了...
收藏起来!!!
^_^
|
clampox 回复于:2005-08-24 11:46:25
|
太好了!不过请问如何把数据导入ORACLE而不是EXCEL?
|
ibmas400 回复于:2005-08-24 11:53:35
|
[quote:3c27102115="clampox"]太好了!不过请问如何把数据导入ORACLE而不是EXCEL?[/quote:3c27102115]
下面的链接是DB2/400--->DB2 FOR NT,估计跟到ORACLE相差不远吧。
http://bbs.chinaunix.net/forum/viewtopic.php?t=428506
|
qingzhou 回复于:2005-08-24 13:10:25
|
[quote:380e00b9e7="clampox"]太好了!不过请问如何把数据导入ORACLE而不是EXCEL?[/quote:380e00b9e7]
:oops: 这个我也没测试过,关于ORACLE导入数据的方法,具体可以参考如下链接:
http://www.dbanotes.net/Oracle/All_About_Oracle_Data_Loading.htm
|
a01 回复于:2005-08-25 11:06:41
|
请问如何在400上控制用户通过EXCEL访问400的权限?
|
qingzhou 回复于:2005-08-25 11:56:24
|
[quote:d4c50cacd4="a01"]请问如何在400上控制用户通过EXCEL访问400的权限?[/quote:d4c50cacd4]
问得很好! :m01:
由于诸如:DB2/400→ORACLE 9i、DB2/400→SQL2000、DB2/400→ACCESS、DB2/400→EXCEL、DB2/400→NOTES都有一个共同特点,就是通过ODBC来实现访问,所以只要控制住ODBC也就自然控制了对DB2/400数据库的访问权限。
如何控制ODBC的使用权限呢?
如果要监控以及控制ODBC的数据传输,可以通过Exit Program来监控Exit point: QIBM_QTF_TRANSFER(程序1) QIBM_QZDA_NDB1(程序2)
程序1:
[code:1:d4c50cacd4]
PGM PARM(&RC &STRU)
DCL VAR(&RC) TYPE(*CHAR) LEN(1)
DCL VAR(&STRU) TYPE(*CHAR) LEN(80)
DCL VAR(&USER) TYPE(*CHAR) LEN(10) /* user profile*/
DCL VAR(&APP1) TYPE(*CHAR) LEN(10) /* function */
DCL VAR(&APP2) TYPE(*CHAR) LEN(10) /* sub function*/
DCL VAR(&TFOBJ) TYPE(*CHAR) LEN(10) /* file name */
DCL VAR(&TFLIB) TYPE(*CHAR) LEN(10) /*library */
DCL VAR(&TFMBR) TYPE(*CHAR) LEN(10) /* member */
DCL VAR(&TFFMT) TYPE(*CHAR) LEN(10) /* format */
DCL VAR(&TYPE) TYPE(*CHAR) LEN(2) /* journaltype */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(EXIT))
CHGVAR &RC VALUE('1') /* set return code to +
allow request unless rejected by program */
CHGVAR &USER VALUE(%SST(&STRU 1 10)) /*user */
CHGVAR &APP2 VALUE(%SST(&STRU 21 10)) /*funct*/
CHGVAR &TFOBJ VALUE(%SST(&STRU 31 10)) /*file */
CHGVAR &TFLIB VALUE(%SST(&STRU 41 10)) /*libr */
CHGVAR &TFMBR VALUE(%SST(&STRU 51 10)) /*mbr */
CHGVAR &TFFMT VALUE(%SST(&STRU 61 10)) /*fmt */
LOG: CHGVAR VAR(&TYPE) VALUE('X' *CAT &RC)
SNDJRNE JRN(QAUDJRN) TYPE(&TYPE) ENTDTA(&STRU)
EXIT:ENDPGM
[/code:1:d4c50cacd4]
程序2:
[code:1:d4c50cacd4]
PGM PARM(&RC &REQUEST)
DCL VAR(&RC) TYPE(*CHAR) LEN(1) VALUE('1')
DCL VAR(&REQUEST) TYPE(*CHAR) LEN(700)
DCL VAR(&TYPE) TYPE(*CHAR) LEN(2)
DCL &X1800 *CHAR 4 VALUE(X'00001800') /*create database file*/
DCL &X1801 *CHAR 4 VALUE(X'00001801') /*create source file*/
DCL &X1802 *CHAR 4 VALUE(X'00001802') /*add member */
DCL &X1803 *CHAR 4 VALUE(X'00001803') /*clear member */
DCL &X1804 *CHAR 4 VALUE(X'00001804') /*delete member */
DCL &X1805 *CHAR 4 VALUE(X'00001805') /*file override */
DCL &X1806 *CHAR 4 VALUE(X'00001806') /*delete file override*/
DCL &X1807 *CHAR 4 VALUE(X'00001807') /*create save file */
DCL &X1808 *CHAR 4 VALUE(X'00001808') /*clear save file */
DCL &X1809 *CHAR 4 VALUE(X'00001809') /*delete file */
/* OPTIMIZED DATABASE SERVER DECLARES */
DCL &DBFMT *CHAR 8 /* format name */
DCL &DBFID *CHAR 4 /* function identifier */
/* FOLLOWING PARAMETERS ADDITIONAL FOR FORMAT ZDAD0100 */
DCL &DBFILE *CHAR 128 /* file name */
DCL &DBLIB *CHAR 10 /* library name */
DCL &DBMBR *CHAR 10 /* member name */
DCL &DBAUT *CHAR 10 /* authority to file */
DCL &DBBFIL *CHAR 128 /* based on file name */
DCL &DBBLIB *CHAR 10 /* based on library name */
DCL &DBOFIL *CHAR 10 /* override file name */
DCL &DBOLIB *CHAR 10 /* override library name */
DCL &DBOMBR *CHAR 10 /* override member name */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(EXIT))
/* allow request unless rejected by program */
CHGVAR VAR(&RC) VALUE('1')
/* set variables from request description */
CHGVAR VAR(&DBFMT) VALUE(%SST(&REQUEST 21 8))
CHGVAR VAR(&DBLIB) VALUE(%SST(&REQUEST 161 10))
CHGVAR VAR(&DBMBR) VALUE(%SST(&REQUEST 171 10))
CHGVAR VAR(&DBOFIL) VALUE(%SST(&REQUEST 329 10))
CHGVAR VAR(&DBOLIB) VALUE(%SST(&REQUEST 339 10))
CHGVAR VAR(&DBOMBR) VALUE(%SST(&REQUEST 349 10))
LOG:
CHGVAR VAR(&TYPE) VALUE('Z' *CAT &RC)
SNDJRNE JRN(QAUDJRN) TYPE(&TYPE) ENTDTA(&REQUEST)
EXIT: ENDPGM
[/code:1:d4c50cacd4]
实施方法:
1、将上述2个程序编译,Owner改为QSECOFR,并使用继承权限;
2、CHGNETA PCSACC(*REGFAC);
3、使用ADDEXITPGM命令把程序添加到相应的Exit point;
4、可以给这2个程序设置一个权限列表,凡是在权限列表内有权限执行此程序的人才可以利用ODBC下传数据;
5、用DSPJRN JRN(QAUDJRN) ENTTYP(Z1) 就可以查看下传的数据情况了;
6、可以用WRKREGINF查看Exit program设置情况。
注:需要有QAUDJRN,如没有需先WRKSYSVAL修改系统值QAUDCTL、QAUDLVL,然后CRTJRN创建QAUDJRN,创建QAUDJRN。
|
clampox 回复于:2005-08-25 12:44:07
|
谢谢楼主指点!
再问下,如何配置ODBC FOR DB2/400,我的WIN2Kp机器上是DB2 UDB,而服务器是DB2/400,不知道为什么我的ODBC连不上DB2/400。
可能问的问题很弱,但是以前从来没摸过DB2和AS/400,不好意思啊
|
qingzhou 回复于:2005-08-25 13:09:14
|
[quote:6a72ad350e="clampox"]谢谢楼主指点!
再问下,如何配置ODBC FOR DB2/400,我的WIN2Kp机器上是DB2 UDB,而服务器是DB2/400,不知道为什么我的ODBC连不上DB2/400。
可能问的问题很弱,但是以前从来没摸过DB2和AS/400,不好意思啊[/quote:6a72ad350e]
安装CA/400时选择定制安装,将iSeries Access ODBC Driver选择后安装就可以在数据源中包含ODBC for DB2/400驱动程序了。
Win2k/WinXP下:开始—>设置—>控制面板—>管理工具—>数据源(ODBC),然后在“系统DNS”项—>“添加”—>选择“Client Access ODBC Driver(32-bit)”驱动,然后在“常规”栏给数据源命名、“服务器”栏指定SQL缺省库为你想操作的LIB、同时在“转换”栏将“将二进制数据(CCSID 65535)转换为文本”选项打上勾,确定保存退出,这样就成功创建了ODBC for DB2/400的数据源。
关于如何实现DB2/400—>DB2 UDB,以前我在回下帖时已经图文并茂的方式进行了详细说明,按照步骤可以实现成功访问。
《如何实现对 as400 db2 的追加 移植》
http://bbs.chinaunix.net/forum/viewtopic.php?t=428506
|