ADO tweaks

antidot

New member
ADO tweaks

אני כותב אפליקציה מבוססת בסיס נתונים על SQL. אני משתמש בADO קונטרולים. כרגע הוספתי את החלק של קונפיגורציה, איפה שאני בוחר את שם שרת הSQL, שם בסיס הנתונים, שם משתשמש וסיסמא ונתקלתי בתופעה שאני לא מצליח להתגבר עליה. אחרי שאני בונה CONNECTION STRING על בסיס נתוני משתמש, בכל Form_load אני מאתחל מחדש את adodc.ConnectionString לרצוי. מה שקורה בפועל, שבאיניציאליזציה של הקונטרול, אם אני משאיר את ההגדרות של ConnectionString של הקונטרול בממשק הגרפי ריקות, הקומפיילר מתלונן על כך שADO לא יודע לאן להתחבר. חשבתי על אפשרות של DUMMY, ז"א לשים קובץ MDB בספריה של האפליקציה ובמאפיינים של אותו ADO לאתחל אותו לאותו קובץ, אך הבעיה היא שאני משתמש באופציות שACCESS לא תומך בהן. בקיצור: איך משתיקים את ADODC שלא יבכה על זה שאין לו לאן להתחבר ויחכה עד שאני אגיד לו דרך הקוד ? תודה מראש Antid0t
 

philips

New member
בדיוק.....

לא ציינת באיזה שפה הבעייה..אבל ככלל אם הרקע שלך במסדי נתונים ו ADO מוגבל... הכיוון של DATA ENV. הוא האפשרות הטובה ביותר שלך.. ספציפית לגבי הבעייה.... עלייך ליצור את אובייקט ההתקשרות רק לאחר שיש בידך את הפרטים... לא אמורה להיווצר בעייה בהזנת הפרטים של ההתקשרות הבעייה תיווצר רק כשתנסה לבצע ניסיון התחברות...
 

antidot

New member
אנחנו בפורום VB הרי...

לגבי בסיסי נתונים אל דאגה, פה בחברה מפתחים את אחד מבסיסי הנתונים החזקים בעולם. רמז: NASDAQ רץ עליו כך שיש לי את מי לשאול. אשאל בצורה אחרת: האם ניתן ליצור דינמית ADODC ולא ADODB.Connection ADODB.Recordset כפי שנהוג ? לגבי התשובה שלך: ADODC קונטרול באיניציאליזציה שלו מתחבר אל הבסיס נתונים ומבצע את השאילתה, כך שהוא חייב נתונים לגיטימיים. ושוב: ניסיתי את DATA ENV. לא מספק אותי... אני משנה את השאילתות דינמית כל הזמן, יוצר חדשות וכו´, כך שהצורה הכי נוחה לדעתי היא ADODC יש למישהו המלצות ? Antid0t
 

Quanta

New member
אם אתה מתעקש

אולי תנסה לעבוד עם control array ואז תוכל ליצור ADODC דינמית...
 

antidot

New member
שאלה אם זה יפתור את הבעיה ?

אני צריך בין היתר להחזיק כמה שאילתות פתוחות. נכון לעכשיו אני עושה את זה בעזרת כמה קונטרולים. לא בטוח שזה יעזור לי, כיוון שאני מחזיק כמה FORMS, כל אחד מקושר לטבלאות שונות בעזרת שאילתות שונות. עוד הצעות ? Antid0t
 

philips

New member
הממ...

קודם כל...תודה על התיקון לגבי תשובתי הקודמת... אכן ניסיון ההתחברות נעשה באתחול האובייקט ולכן זה לא יעבוד... משום מה התבלבלתי עם משהו אחר... הבנתי פחות או יותר את רעיונך וגם אני ביצעתי בעבר באמצעות ADO שאילתות דינמיות שמתחלפות....אך לא זכור שלי שנתקלתי בבעייה מכיון שיצרתי את האובייקט דינמית PER שאילתה ולאחר מכן זרקתיו או השארתי אותו פתוח ועדכנתי שאילתה... לא ברור לי מדוע אתה חייב ליצור את האובייקט דווקא כשהפקד ריק ואין לו לאן להתחבר.... כשתרצה לבצע שאילתא יהיו בידך הנתונים הדרושים לביצועה וביניהם גם פרטי הקובץ וזה הזמן לאתחל אותו... אח"כ אתה יכול לשנות את ה CONNECTION STRING.... אבל לאתחל אותו ריק ואז לתת ערך..... נראה לי שניתן עם קצת רה-ארגון וכמה IF...לשנות את זה..
 

antidot

New member
למה ריק ?

כיוון שזאת אפליקציה גנרית והאפליקציה לא אמורה לדעת בתוך הקוד איפה יושב בסיס הנתונים ועל איזה שרת SQL. אני שומר את הנתונים האלה בREGISTRY. בהפעלה ראשונה על מחשב כלשהו אני לא רוצה את השגיאה המעצבנת "SQL Server not found". אני מבין את הדרך שלך, אבל אם אני אתחיל ליצור את כל הפקדים דינמית אני אלך לעיבוד והקוד יראה זוועה (זאת אפליקציה קטנה לניהול בסיס נתונים של קורות חיים) כיוון שרוב השאילתות חייבות להיות פתוחות ומקושרות לפקדים. תודה בכל מקרה לכולם. בינתיים מצאתי פתרון די מכוער שעובד, אבל אני אבדוק את האפשרות של form_activate Antid0t
 
למעלה