2012年10月23日 星期二

連接 Oracle 不依靠 tnsname.ora


有朋友問了一個問題, VB 只能用 tnsname.ora 內的 tns 來連線,而不能動態連,想連哪裡就連哪裡嗎?


解答在這裡:
http://www.devx.com/tips/Tip/27775




    Dim TNS_INFO As String
    Dim cnxDB As New ADODB.Connection
 
    TNS_INFO = "(DESCRIPTION=" & _
                       "(ADDRESS_LIST=" & _
                       "(ADDRESS=(PROTOCOL=TCP)" & _
                       "(HOST=資料庫位址)" & _
                       "(PORT=埠號)))" & _
                       "(CONNECT_DATA=(SID=SID名稱)" & _
                       "(SERVER=DEDICATED)))"
                     
   若是沒有 OraOLEDB.Oracle 的話,用 MSDAORA.1 也是可以的

    'cnxDB.ConnectionString = "Provider=MSDAORA.1;" & _

    cnxDB.ConnectionString = "Provider=OraOLEDB.Oracle;" & _
                       "Data Source=" & TNS_INFO & ";" & _
                       "user id=帳號;" & _
                       "password=密碼"
    Debug.Print cnxDB.ConnectionString

2012年10月18日 星期四

月結時發現工單數錯誤,多開數量 --> 工單退料




若是工單多開數量,但是工單已發料並且再製了,此時倒單會有很重的 loading,故要執行
asfi526/asfi526_icd 來新增退料單,其中的資訊都和工單相同,如此一來在月結時資料才正確

******
列出一個SQL script 來查詢未結工單的列表,以後有時間再寫成 p_query 或網頁來查詢
******

  SELECT *
    FROM (  SELECT DISTINCT sfb01, --工單號碼
                            sfb081, --發料量
                            SFB09, --完工量
                            SFB12, --報廢量
                            SFB05, --料號
                            SFB91, --採購單號
                            SFB81,  --工單日期
                            sfb04,  --結案狀態 7-未結案
                            (sfb081 - sfb09 - sfb12) unclosedqty, --未結數量
                            MAX (rva06) m_rva06 --最後發料日期
              FROM alchip_tw.sfb_file a,
                   alchip_tw.rvb_file b,
                   alchip_tw.rva_file c
             WHERE     sfb81 >= TO_DATE ('2012/08/01', 'yyyy/mm/dd')
                   AND sfb81 <= TO_DATE ('2012/08/31', 'yyyy/mm/dd')
                   AND sfb04 = 7 --代表未結案狀態
                   AND rvb01 = rva01
                   AND rvb34 = sfb01
                   AND rvaconf = 'Y'
          GROUP BY sfb01,
                   sfb081,
                   SFB09,
                   SFB12,
                   SFB05,
                   SFB91,
                   SFB81,
                   sfb04
          ORDER BY sfb01)
   WHERE m_rva06 < TO_DATE ('2012/09/01', 'yyyy/mm/dd')
ORDER BY unclosedqty