1.請確定在你執行的那台server上已裝好Client Access囉,如果你想在Client端也能用,那Client端也要裝!
2-1.裝好後我通常是先設定ODBC啦,再[開始][執行]那邊輸入odbcad32,這邊之後再設也行
2-2. 然後在[ODBC資料來源管理員]畫面的[系統資料來名稱]頁籤,按下[新增] 2-3.在[建立新資料來源]畫面,選取[iSeries Access ODBC Driver],按下[完成 ]


分享我工作上的小小心得,希望對大家所幫助
2-2. 然後在[ODBC資料來源管理員]畫面的[系統資料來名稱]頁籤,按下[新增] 2-3.在[建立新資料來源]畫面,選取[iSeries Access ODBC Driver],按下[完成 ]
::取日期與星期幾
for /f "tokens=1,2" %%i in ('date /T') do set vard=%%i&& set vare=%%j
::判斷是否週日,如果是週日跳到另一段落
if %vare%==星期日 goto addsun
::下面執行非週日的命令
echo 執行非週日命令
exit
::下面執行週日的另令
:addsun
echo 執行週日命令
if %time:~0,2% EQU 9 echo. >c:\test.log答案是利用時間囉,因為排程是時間是9點開始,那我判斷時間是9點才執行清檔就可以,簡單吧,系統時間%time%是20:29:11.04囉
if exist %temp%\addreg.reg regedit /s %temp%\addreg.reg3. IF [NOT] ERRORLEVEL number command
XCOPY C:\AUTOEXEC.BAT D:\IF ERRORLEVEL 是用來測試它的上一個DOS命令的回傳值的,注意只是上一個命令的回傳值喔,而且回傳值必須依照從大到小次序順序判斷,否則會出錯喔。
IF ERRORLEVEL 1 ECHO 成功複製檔案 >c:\LOG.txt
IF ERRORLEVEL 0 ECHO 檔案複製失敗 >c:\LOG.txt
選擇IBMDA400的那個囉,然後按下[確定]
4. 然後在[伺服器名稱或檔名]那邊輸入AS400的ip,在使用者名稱及密碼那邊輸入連線到AS400用的帳號密碼囉,通常[允許儲存密碼]我會打勾,[初始資料庫目錄]不需設定,留空即可,很多人會誤以為這要填LIBRARY,LIBRARY是在後面才設定的,這跟設ODBC是不一樣的地方,然後按下[測試連接]
5.出現[連接測試成功]就表示OK了,然後按下[確定]
6. 確認[資料連接]出現新的設定,然後該設定的[資料連接屬性]是你剛設的資訊,再按下[確定]吧
7.然後[連接管理員]就會多一個你剛設的,在[控制流程]頁籤先拉一個[資料流程工作],在[資料流程]頁籤再拉一個[OLE DB來源],在[OLE DB來源]上滑鼠快點兩下
8.在[OLE DB來源編輯器]裡,[OLE DB連接管理員]選剛設好的那個, [資料存取模式]選[SQL 命令],[SQL命令文字]請輸入SQL陳述式囉,注意此處的SQL陳述式,需指定LIBRARY,而且要用LIBRARY.TABLE,不是LIBRARY/TABLE喔,像下圖那樣喔,"SELECT * FROM LIBRARY.TABLE"
8.如果SQL命令文字不正確,按下[預覽]或左邊的[資料行],是會跳出錯誤的視窗的還好我有用過AS400兩年,像 "SQL0204: TEST in LBNFIL type *FILE not found."的錯誤,就是告訴你,在LBNFIL下並沒有TEST這個table囉,請檢查是LIBRARY打錯還是TABLE打錯囉
update CUACCP5_Master_fset FLINE = 30from
dbo.CUACCP5_Master_f as f1 inner join dbo.CUACCP5_Master_p as p1on (f1.idt_key =
p1.idt_key ) where p1.Key1= ?
描述:無法繫結多重部分(Multi-Part)識別碼"p1.Key1"然後我改成子查詢
update CUACCP5_Master_f set FLINE = 30from CUACCP5_Master_f where就出現錯誤
CUACCP5_Master_f.idt_key in(select idt_key from CUACCP5_Master_p where Key1 =
?)
描述:無法從具有 sub-select 查詢的 SQL 陳述式衍生參數資訊。
最近接到個任務剛好有這個需要,在SQL 2000時代,需透過Client Access(IBM iSeries Access for Windows)去轉的,然後還要設定odbc,是很麻煩的,在SQL 2005呢?原本是藉由資料通轉入SQL Server的,因為用Client Access我們沒人會啊,後來問我們400的管理人員,才知道原來資料通也是透過Client Access去轉的,那表示我應該可以直接用Client Access去轉啊,不用透過資料通,效能應該會好點,因為原本透過資料通,光轉一百五十萬筆就得花1小時了,那我這次任務,得轉四千多萬筆,那不是得轉好多天啊!所以我得去研究這個我們目前沒人會的東東,皇天不付苦心人,上網搜尋好多天,終於實作出來了,四千多萬筆花不到6小時後,已經快很多吧!不過此篇我不先介紹步驟,下篇再介紹,我先介紹Client Access裡面所提供的三個OLE DB providers的差別,這我也找很久說,最後從IBM Redbooks裡面找到的,我直接把我認為的重點轉貼出來好了,如有人認為不妥,我再刪掉好囉
The V5R3 release of iSeries Access for Windows includes three OLE DB providers:
另外也許有人會問IBMDA400與IBMDASQL使用上速度有何差別?我個人反覆實測傳輸223,167筆資料下,兩個速度差異不大,只差數秒間,差一秒有差嗎?我個人覺得沒差囉