שלח תשובה

זירת השאלות

549
צפיות
6
תשובות

שליפה מורכבת ב-ACCESS

,‏ 4 באוקטובר, 2005

(דיבי-אקסס, שפה-javascript, צד-שרת)
העמוד שלי נראה כך. (אחרי שהועבר לצד שרת בעצתם של רבים.)
כרגע אני משתמש בשאילתה יחסית פשוטה (ניתן לראות אותה למעלה) לשם שליפת הנתונים על הבניינים.
אולם ישנן כמה עמודות שכדי למלא אותן צריך להכנס לטבלאות נוספות (עם קשרי רבים-רבים) – והדוגמה הכי טובה לזה היא העמודה "שימוש". בשביל להשיג עבור בניין את השימושים שלו (לדוגמה "משרדים, מגורים, מלונאות") אני צריך לפתוח שתי טבלאות נוספות – טבלת השימושים (לכל שימוש יש ID, שם בעברית ובאנגלית ושדות נוספים אותם איני צריך לשליפה זו), והטבלה המקשרת בין הבניינים לשימושי הבניה. הגיוני, נכון?
מה שעשיתי עד עכשיו כדי להציג עבור כל בניין את שימושיו היה לפתוח RS חדש כל פעם שמגיעים לעמודה "שימוש", לקבל בשאילתה את טבלת השימושים עבור הבניין הספציפי, לרוץ עליה ולהדפיס אותם אחד אחד("שימוש","מגורים","מלונאות").
מה הבעיה? הבעיה שאם רוצים, לדוגמה, לסדר את הבניינים לפי שימוש (בסדר אלפביתי) – אי אפשר! (לפחות לא ע"י SQL…). השימוש לא מוכר ע"י השאילתה(ובצדק) כאחד השדות ששולפים לפיהם, לכן בין היתר לא ניתן לסדר לפי זה. אם הייתה לי דרך שבה הייתי יכול לשרשר את כל שמות השימושים עבור בניין למחרוזת אחת, ולהוסיף אותה לשאילתה הראשית, הייתי יכול לעשות זאת (למרות שגם שם, אף פעם לא הצלחתי לעשות ORDER BY ל-ALIAS). למישהו יש פתרון?
תודה ושנה טובה לכולם!

תגיות:

6 תשובות

  1. Kodak997 הגיב:

    השגת ממדי תמונה בצד השרת?
    באותו עמוד (שכאן) יש לי כמה תמונות.
    התמונות בעיקרן גדולות יותר ממה שמוצג (עדיין Thumbnail אבל יותר גדולים), כלומר יש צורך להקטינן ובצורה שתשמור על יחס התמונה. עד עכשיו מה שעשיתי היה הוספה של פונקציה ל-OnLoad של כל תמונה אשר משנה את הגודל שלה. בצורה הבאה:


    onLoad="ResizeImg(this,0,0,100,100)";

    כאשר שתי ה-100 מייצגים גובה מקסימלי ורוחב מקסימלי, אותם תמונה לא יכולה לעבור. את הפונקציה ResizeImg צירפתי.
    הבעיה היא שזה פשוטו כמשמעו, {לא תמיד} עובד! תמונות מקבלות {לפעמים} גודל 0! לפעמים רק אחרי שמרעננים את העמוד מתקבלת תוצאה טובה. כלומר זה דבר הפכפך שמאוד תלוי בדפדפן ואי-אפשר לסמוך עליו.
    השאלה האם ניתן להשיג כבר בשרת מימדים של תמונה? אם הייתי יכול לדעת אותם הייתי כבר נותן במאפיינים של התגית IMG את האורך והרוחב, ולא מסתבך עם צד לקוח. אפשר לעשות כזה דבר? עדיף למצוא פתרון אחר בצד הלקוח?

  2. BuildHome הגיב:

    מה ניסית בדיוק?
    ניסית INNER JOIN לכל הטבלאות הרלוונטיות כמו שצריך?
    איך ניסית לסדר בשאילתה את הרשומות לפי בניינים?

  3. BuildHome הגיב:

    תשובה
    צריך להשתמש ברכיב תמונה כגון ASPJpeg (בתשלום), ברכיב חינמי או למשל זה.

  4. Kodak997 הגיב:

    INNER JOIN?
    בוא נסתכל שניה על הדוגמה שנתתי. אני רוצה לשלוף את שימושי הבניה עבור בניין מסויים (לדוגמה – למגדל המניפה יש השימושים "משרדים + מגורים + מלונאות"). בשביל להשיג את המחרוזות "משרדים", "מגורים", "מלונאות" צריך לפתוח את טבלת השימושים. inner join במקרה זה (בין טבלת הבניינים לטבלת השימושים) ייתן לי סתם רשומות כפולות – את מגדל המניפה בעל השימוש "משרדים", אח"כ את מגדל המניפה בעל השימוש "מגורים" וכו’. לא?
    אני מנסה להימנע מהמצב הזה. השאלה האם זה אפשרי בשאילתה אחת, האם יש דרך (מין תת-שאילתה?) להשיג את טבלת השימושים עבור בניין מסויים וממנה לשרשר את הסטרינגים שלהם לתוך משתנה אחד בשאילתה, שיהיה אפשר לסדר לפיו.

  5. זהר פלד הגיב:

    מכיון שמדובר על אקסס,
    ולא על שרת נתונים רציני, כמו sql server, יש מצב שתצטרך לכתוב פשוט שאילתה ספציפית למיון הזה.
    אבל בלי לדעת יותר על מבנה הנתונים, אני לא יכול לתת לך כיוון מדוייק יותר.

שלח תשובה