שלח תשובה

זירת השאלות

219
צפיות
18
תשובות

שאלה לגבי התחלת עבודה עם ACCESS…

,‏ 4 בפברואר, 2004

אז אני חוזר לעבוד עם בסיסי נתונים. בפעם הראשונה אחרי שנים.

יש לי שדה
ID – מוגדר כ NUMBER – PRIMARY KEY
שם – מוגדר כ TEXT
טלפון – מוגדר TEXT
תאריך – מוגדר כ DATE/TIME

אני מקווה שעשיתי הכל בסדר שם, לא בטוח.

יש לי כמה שאלות:
איך מתחילים לדבר עם ה ACCESS, מהי שורת ה DSN שלו?

תגיות:

18 תשובות

  1. mrmistory הגיב:

    טוב, אז ככה אפשר…
    dsn="DBQ=" & Server.Mappath("YouDB.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
    Conn.Open dsn

  2. ניר טייב הגיב:

    הנה כך בשני האופנים :::
    אופן ראשון ODBC :::

    conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("yourDb.MDB") & ";Uid=Admin;Pwd=;"

    אופן שני OLEDB :::

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("yourDb.MDB") & ";User Id=admin;Password=;"

    עם סיסמא :::
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=& Server.MapPath("yourDb.MDB") & "; Jet OLEDB:Database Password=MyDbPassword;"

  3. mynameispepper הגיב:

    אני מנסה להחבר ואני מקבל את זה:

    Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
    [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key ‘Temporary (volatile) Jet DSN for process 0x728 Thread 0x78c DBC 0x214001c Jet’.

    /aboutTheSchool/graduates/test.asp, line 48

    זה הקוד שלי:


    <%
    SQL = "Select * From lama"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open SQL,DSN,3,1 – Line 48
    if NOT rs.EOF Then
    if rs(0) <> "" Then Response.Write Replace(rs(0),vbCrlf,"<br>")
    End if
    rs.Close
    Set rs = Nothing
    %>

  4. mynameispepper הגיב:

    ככה לא טוב?

    <%
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../test/da/ddsb.mdb")

    SQL = "Select first_name,last_name,country,email,phone_number,department From test_table"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open SQL,DSN,3,1
    if NOT rs.EOF Then
    if rs(0) <> "" Then Response.Write Replace(rs(0),vbCrlf,"<br>")
    End if
    rs.Close
    Set rs = Nothing
    %>

  5. mrmistory הגיב:

    לא…
    צריך לפתוח קשר קודם מול בסיס הנתונים
    לפני שאילתא שלך תעשה conn.open dsn
    ועוד…
    dim conn
    Set conn = Server.CreateObject("ADODB.Connection")

  6. mynameispepper הגיב:

    עדיין לא עובד…

    <%
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../dsadsada/dasdasb.mdb")
    Conn.Open DSN
    dim conn
    Set Conn = Server.CreateObject("ADODB.Connection")
    SQL = "Select first_name,email,department From table"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open SQL,DSN,3,1
    if NOT rs.EOF Then
    if rs(0) <> "" Then Response.Write Replace(rs(0),vbCrlf,"<br>")
    End if
    rs.Close
    Set rs = Nothing
    %>

  7. ניר טייב הגיב:

    לא הבנת
    שים את הקוד הבא ותשווה

    <%
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../dsadsada/dasdasb.mdb")
    dim conn
    Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open DSN

    SQL = "Select first_name,email,department From table"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open SQL,DSN,3,1
    if NOT rs.EOF Then
    if rs(0) <> "" Then Response.Write Replace(rs(0),vbCrlf,"<br>")
    End if
    rs.Close
    Set rs = Nothing
    %>

  8. mynameispepper הגיב:

    עכשיו אני מקבל הודעת שגיאה אחרת…

    Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
    [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key ‘Temporary (volatile) Jet DSN for process 0x728 Thread 0x770 DBC 0x214001c Jet’.

    /aboutTheSchool/graduates/test.asp, line 49

    שורה 49: Conn.Open DSN

    מה עשיתי לא נכון?

  9. ניר טייב הגיב:

    נסה כך


    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../dsadsada/dasdasb.mdb") & ";"

    ואם זה לא עובד תעבור ל-oleDB

  10. mynameispepper הגיב:

    זה בדיוק כמו מה שקיים אצלי עכשיו
    וזה לא עובד. מה ההבדל בין השורה שלך לשלי?

  11. ניר טייב הגיב:

    –>
    הוספתי את זה בסוף ;

    ולמה זה לא עובד?!!!
    1. יכול להיות שהקובץ פתוח
    2. תעבור לאופן השני oleDB

  12. mynameispepper הגיב:

    אין לי מושג איך לעבוד באופן השני…
    אני עובד עם ACCESS 2000, זה בעייתי?
    נוצר בחלונות XP

  13. mynameispepper הגיב:

    OK ניר, זה עובד! תודה על העזרה.
    אבל זה עובד אצלי ללא פתיחת CONN, זו בעייה?

  14. mynameispepper הגיב:

    בבקשה…

    <%
    DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’c:\datadb.mdb’;"

    department = request.querystring("department")
    start_date = request.querystring("date")

    Set rs = Server.CreateObject("ADODB.RecordSet")
    SQL = "Select first_name,last_name,country FROM testTBL ORDER BY first_name"

    rs.Open SQL,DSN,3,1

    if NOT rs.EOF Then
    While Not rs.EOF
    first_name = rs("first_name")
    last_name = rs("last_name")

    Response.Write "<tr>"
    Response.Write "<td>" & first_name & " " & last_name & "</td>"
    Response.Write "<td>" & country & "</td>"
    Response.Write"</tr>"
    rs.MoveNext
    Wend
    End if

    rs.Close
    Set rs = Nothing
    %>

    הבעייה היתה בשרת ובעל השרת שלח לי את שורת ה DSN שוב ואחר כך זה עבד בלי בעיות.

    תודה על העזרה –
    פפר

  15. ניר טייב הגיב:

    והנה התשובה
    לפעמים לא חייב להגדיר CONN בשביל שליפה אחת ויחידה (כך אמרו בפורום הזה או בתפוז) ושורת הפתיחה של הרקורדסט יכולה לקבל את שורת החיבור למסד אבל רצוי תמיד להדיר אובייקט חיבור

שלח תשובה