none
האם אפשר לשלוף מידע מהDB באמצעות OLEDB, ע"י שאילתת CTE? RRS feed

  • שאלה

  • אני משתמשת בOleDbCommand(); ובDbDataAdapter.Fill כדי לשלוף מידע מהDB,

    אז עכשיו זה עבד מעולה למשפטי select רגילים או מורכבים.

    כעת אני מנסה לשלוף עם משפט CTE,

    WITH query_name AS
    (SELECT...
    )
    SELECT
    FROM query_name
    …;

    וזה מחזיר לי null, למה זה נופל? איך אני יכולה להשתמש בזה חוץ מלהכניס את זה לפרצדורה בDB?

    יום שני 15 דצמבר 2014 10:44

תשובות

  • סליחה הוא לא נופל. הוא מחזיר null בdatatable

    בלינק הבא:http://forums.asp.net/t/1945393.aspx?Common+Table+Expressions+CTE+with+SQLDataSource+SelectCommand+

    מישהו כותב שהוא פתר את זה כך:

    Switched connection string from "Provider=MSDAORA" to "Provider=OraOLEDB.Oracle" and now it works like a charm!

    הקטע שאין לי את הProvider=OraOLEDB.Oracle במחשב :(

    יום שני 15 דצמבר 2014 12:43
  • אהלן

    אני לא יכול הרבה לעזור לגבי עבודה מול אורקל מכיוון שהתקנתי לפני כמה ימים מערכת פיתוח חדשה ולא התקנתי אורקל (אין לי כוונה להתקין את השרת בקרוב... השרת הפיתוח הקודם שלי הוא היה מותקן), ובכל מקרה אני לא עובד עם אורקל וגם כאשר הוא היה מותקן זה היה "סתם" למשחקים שלי.

    באופן תיאורטי, לא צריכה להיות בעיה להעביר כל שאילתה חוקית, אם עובדים עם הפרוביידר המתאים למסד הנתונים. ישנם פרוביידרים כלליים שמאפשרים גישה למסדי נתונים מרובים אבל אז הם בדרך כלל מגביים לעבודה בשפת SQL הבסיסית ולא מאפשרים עבודה בשפות ההרחבות של השרת (למשל SQL כן אבל T-SQL לא או SQL כן אבל PL לא).

    לכן כניראה שאכן זה הפתרון בשבילך (לעבוד עם הפרובידר של אורקל) :-)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    • סומן כתשובה על-ידי Eran Sharvit יום חמישי 18 דצמבר 2014 09:15
    יום שלישי 16 דצמבר 2014 17:31
    מנחה דיון

כל התגובות

  • אני לא יכול לדעת למה זה נופל, מפני שלא הבאת לנו את המידע המתאים, אבל התשובה היא כן. אפשר להריץ שאילה הכוללת שימוש בטבלה וירטואלית CTE. אם תצרפי DDL+DML רלוונטי ואת השאילתה המדוייקת שאת מנסה להעביר בקוד נוכל אולי למצוא את הבעיה. כמובן שעלייך למצוא הועות השגיאה המדוייקות שאת מקבלת.

    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    יום שני 15 דצמבר 2014 12:38
    מנחה דיון
  • סליחה הוא לא נופל. הוא מחזיר null בdatatable

    בלינק הבא:http://forums.asp.net/t/1945393.aspx?Common+Table+Expressions+CTE+with+SQLDataSource+SelectCommand+

    מישהו כותב שהוא פתר את זה כך:

    Switched connection string from "Provider=MSDAORA" to "Provider=OraOLEDB.Oracle" and now it works like a charm!

    הקטע שאין לי את הProvider=OraOLEDB.Oracle במחשב :(

    יום שני 15 דצמבר 2014 12:43
  • *** בכל התשובות שלי (מכיוון שאין מידע אחר), אני יוצא מתוך הנחה שאת עובדת עם שרתי SQL

    אין קשר בין הפתרון לבין השאלה שלך ואין קשר בין הבעיה של המשתמש בקישור שהבאת לבין הבעיה שלך אלא אם את עובדת בשרת Oracle כמו שהוא עובד. צריך לקרוא דיונים לעומק ולשים לב היכן הם מפורסמים :-)

    OraOLEDB הוא ספק (provider) עבור התחברות לשרתי אורקל ואינו מתאים לעבודה עם שרתי SQL.
    * אם תתקיני שרת אורקל אז יהיה לך את הספק הזה על המחשב (הוא מגיע עם ההתקנה, אבל אפשר גם להתקין בנפרד, למשל כשאר רוצים לגשת לשרת מרוחק)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]



    יום שני 15 דצמבר 2014 13:11
    מנחה דיון
  • סליחה רונן, שלא ציינתי במפורש.

    אני אכן עובדת עם אורקל.

    יום שלישי 16 דצמבר 2014 05:35
  • אהלן

    אני לא יכול הרבה לעזור לגבי עבודה מול אורקל מכיוון שהתקנתי לפני כמה ימים מערכת פיתוח חדשה ולא התקנתי אורקל (אין לי כוונה להתקין את השרת בקרוב... השרת הפיתוח הקודם שלי הוא היה מותקן), ובכל מקרה אני לא עובד עם אורקל וגם כאשר הוא היה מותקן זה היה "סתם" למשחקים שלי.

    באופן תיאורטי, לא צריכה להיות בעיה להעביר כל שאילתה חוקית, אם עובדים עם הפרוביידר המתאים למסד הנתונים. ישנם פרוביידרים כלליים שמאפשרים גישה למסדי נתונים מרובים אבל אז הם בדרך כלל מגביים לעבודה בשפת SQL הבסיסית ולא מאפשרים עבודה בשפות ההרחבות של השרת (למשל SQL כן אבל T-SQL לא או SQL כן אבל PL לא).

    לכן כניראה שאכן זה הפתרון בשבילך (לעבוד עם הפרובידר של אורקל) :-)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    • סומן כתשובה על-ידי Eran Sharvit יום חמישי 18 דצמבר 2014 09:15
    יום שלישי 16 דצמבר 2014 17:31
    מנחה דיון