แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Piya125

หน้า: [1]
2
ผมเขียน SQL ใน Access VB ผ่าน OraOLEDB เพื่อload data จากOracle มาเก็บไว้ใน Table ใน Access file โดยload แต่ละครั้งประมาณไม่ต่ำกว่า 2ล้าน records บางครั้งก็load ได้จนจบ บางครั้งก็เกิด error ตามนี้ครับ

Run-time error '3049' Cannot open database".It may not be a database that your application recognizes, or the file may be corrupt.

โค๊ดเริ่มต้นด้วย SQL  ดึงข้อมูลมาแล้วมา AddNew ใส่ Table ขณะที่กำลัง AddNew นั้นมักจะ Error ครับ ไม่ทราบจะป้องกันอย่างไร ขอบคุณครับ

conn.ConnectionTimeout = 0
conn.Open "Provider=OraOLEDB.Oracle;User id=XXXX;Password=XXXX;Data Source=XXXdb1;FetchSize=250;CacheType=Memory"

sqlstr = "select W.*, T.MATL_TYPE_CD, S.SIZE_ABBREVIATION,B.PURCHASE_MAJOR_CLASS, B.PURCHASE_MINOR_CLASS" & vbLf & _
         "from DA.ITEM_SIZE S, DA.MFG_PATH_BUY B, DA.MPS_ORDER_DETAIL W, DA.STYLE T" & vbLf & _
         "where W.SIZE_CD = S.SIZE_CD AND W.DEP_STYLE = T.STYLE_CD AND B.STYLE_CD = W.DEP_STYLE AND B.SIZE_CD = W.DEP_SIZE_CD" & vbLf & _
         "AND B.ATTRIBUTE_CD = W.DEP_ATTRIBUTE_CD AND B.COLOR_CD = W.DEP_COLOR AND B.PLANT_CD = W.DEP_PLANT "

p_rec.Open sqlstr, conn

If p_rec.EOF = False Then
      Set rs = CurrentDb.OpenRecordset("OPEN_WORKORDER_DEMAND")
      Do Until p_rec.EOF
        rs.AddNew
        rs!DETAIL_TYPE = p_rec!DETAIL_TYPE
        rs!DEP_STYLE = p_rec!DEP_STYLE
        rs!DEP_COLOR = p_rec!DEP_COLOR
        rs!DEP_ATTRIBUTE_CD = p_rec!DEP_ATTRIBUTE_CD
        rs!DEP_SIZE_CD = p_rec!DEP_SIZE_CD
        rs!DEP_STYLE_17DIG = p_rec!DEP_STYLE & p_rec!DEP_COLOR & p_rec!DEP_ATTRIBUTE_CD & p_rec!DEP_SIZE_CD
        rs!DEP_PLANT = p_rec!DEP_PLANT
        rs!Style = p_rec!Style
   

หน้า: [1]