599
צפיות
צפיות
5
תשובות
תשובות
כמה שאלות על מסדי נתונים ו SQL
1. מה ההבדל בין התקשרות DSB להתקשרות ללא DSN ?
2. מה ההבדל בין שתי הדרכים הבאות ליצירת רקורדסט
דרך ראשונה: קוד שנוצר אוטומטית בדרימוובר
Dim MM_visuals_STRING
MM_visuals_STRING = "dsn=visuals;"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet .ActiveConnection = MM_visuals_STRING
RecSet .Source = "SELECT * FROM table1"
RecSet .Open()
דרך שנייה:
set DB = server.createObject("ADODB.Connection")
DB.open "visuals"
set RecSet = DB.Execute("SELECT * FROM table1")
DB.Close
set DB = Nothing
3. יש לי שדה בוליאני בטבלה מסוג כן/לא. אני רוצה לבחור את הרשומות בהן שדה זה הוא אמת/כן.
כתבתי משפט SQL :
SELECT * FROM table1 WHERE gallery?=True
ניסיתי לכתוב גם שווה ל YES , 0 , 1 וכל הזמן זה מחזיר לי שגיאה, איך אני אמורה לכתוב נכון את המשפט ?
5 תשובות
אז ככה:
לגבי השאלה הראשונה – ההבדל הוא זניח.
ההבדל העיקרי הוא איפה נכתב ה connectionString – בקוד או ב odbc. מעבר לזה אין כמעט הבדל במשמעות.
לגבי השאלה השניה – הדרך של דרימוויבר מייצרת אובייקט connection מאחורי הקלעים, שלך כמתכנתת אין דרך לגעת בו. קראתי פעם איפשהו שהדרך הזו פחות מומלצת כי היא לא משתמשת ב connection pool של ה iis. גם אם זה לא נכון, היא פחות מומלצת כי היא עלולה לגרום לזליגת זיכרון, במידה ובעקבות באג כלשהו ה connection object נשאר פתוח על השרת אחרי שה recordset נסגר.
הדרך המומלצת היא ליצור connection דרך הקוד, ועליו לפתוח את ה recordset.
לגבי השאלה השלישית – על איזה מסד נתונים מדובר?
אקסס
יש מצב שאסור לי לשים סימני שאלה בשמות של העמודות ?
דומני שאסור
אם זה אקסס, אז בודאות אסור, כי סימני שאלה באקסס משמשים כפרמטרים לשאילתות.
תוסיף [] על שם העמודה
אקסס מקבל בעיקרון כל סוג של שם עמודות אם פונים אליו בתוך []
נסה
SELECT * FROM table1 WHERE [gallery?]=True
לא יעיל בכלל
צריך להרגיל אותם לעבוד עם אקסס כמו עם מסדי נתונים דוגמת SQL SERVER.
בלי שמות בעיברית בלי תוים בעייתיים, כי מה יהיה ביום שירצו המרה.
בתוכנה צריך תמיד לחשוב קימה על גידול.