500
צפיות
צפיות
18
תשובות
תשובות
שאלה לגבי התחלת עבודה עם ACCESS…
אז אני חוזר לעבוד עם בסיסי נתונים. בפעם הראשונה אחרי שנים.
יש לי שדה
ID – מוגדר כ NUMBER – PRIMARY KEY
שם – מוגדר כ TEXT
טלפון – מוגדר TEXT
תאריך – מוגדר כ DATE/TIME
אני מקווה שעשיתי הכל בסדר שם, לא בטוח.
יש לי כמה שאלות:
איך מתחילים לדבר עם ה ACCESS, מהי שורת ה DSN שלו?
18 תשובות
טוב, אז ככה אפשר…
dsn="DBQ=" & Server.Mappath("YouDB.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Conn.Open dsn
הנה כך בשני האופנים :::
אופן ראשון 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;"
מה ההבדל בין ה ODBC ל OLEDB?
אני מנסה להחבר ואני מקבל את זה:
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
%>
איפה conn.open dsn ?
ככה לא טוב?
<%
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
%>
לא…
צריך לפתוח קשר קודם מול בסיס הנתונים
לפני שאילתא שלך תעשה conn.open dsn
ועוד…
dim conn
Set conn = Server.CreateObject("ADODB.Connection")
עדיין לא עובד…
<%
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
%>
לא הבנת
שים את הקוד הבא ותשווה
<%
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
%>
עכשיו אני מקבל הודעת שגיאה אחרת…
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
מה עשיתי לא נכון?
נסה כך
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../dsadsada/dasdasb.mdb") & ";"
ואם זה לא עובד תעבור ל-oleDB
זה בדיוק כמו מה שקיים אצלי עכשיו
וזה לא עובד. מה ההבדל בין השורה שלך לשלי?
–>
הוספתי את זה בסוף ;
ולמה זה לא עובד?!!!
1. יכול להיות שהקובץ פתוח
2. תעבור לאופן השני oleDB
אין לי מושג איך לעבוד באופן השני…
אני עובד עם ACCESS 2000, זה בעייתי?
נוצר בחלונות XP
OK ניר, זה עובד! תודה על העזרה.
אבל זה עובד אצלי ללא פתיחת CONN, זו בעייה?
אתה מוכן
לשים כאן את הקוד ששמת?
בבקשה…
<%
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 שוב ואחר כך זה עבד בלי בעיות.
תודה על העזרה –
פפר
והנה התשובה
לפעמים לא חייב להגדיר CONN בשביל שליפה אחת ויחידה (כך אמרו בפורום הזה או בתפוז) ושורת הפתיחה של הרקורדסט יכולה לקבל את שורת החיבור למסד אבל רצוי תמיד להדיר אובייקט חיבור