יצוא אוטומטי מ ms sql ל xml

usi1

New member
יצוא אוטומטי מ ms sql ל xml

שלום לכם,

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

כתבתי שאילתה ולמעט תיקונים קטנים וקלים היא כבר מוכנה
אני מניחה שהשלב הבא יהיה לכתוב פרוצדורה
הפרוצדורה צריכה לקבל ערכים דינמים כדי לבנות את החיתוך ( כמה רשומות להציג למשל ) כרגע בשאילתה שמתי נתונים סטטים רק לראות אם זה עובד
והלקוח הסופי צריך לקבל את הנתונים ב XML
הנתונים הם דינמים ומתעדכנים יומית ולכן את כל הפרוצדורה גם צריך לשים על JOB שירוץ אוטומטית נניח אחת ליום וירפרש את הנתונים
הידע שלי בנושאים האלה הוא ערטילאי לגמרי ...
איך אני מתקדמת משלב השאילתה הלאה?
אני לא DBA בהכשרתי ולצערי הרב אני עובדת במקום שאין לו DBA ואני צריכה לבצע זאת...

מה הלקוח מקבל ( איך יראה הלינק עם ה XML ללקוח ) כדי שהערכים יהיו דינמים ויועברו דינמית לפרוצדורה , יש דרך לוותר על שלב הקוד באיזה צורה או שזה חייב לעבור דרך קוד כדי לקבל את הנתונים ( לפחות פרמטר אחד הוא חובה ) ולהעביר אותם לפרוצדורה שתייצר את ה XML ?

אני מקווה שאני ברורה..

אם יש לכם רעיונות אחרים איך מעבירים דינמית ואוטומטית נתונים מהדטה בייס ללקוחות , גם אשמח לשמוע.

אשמח להכוונה בעניין .

תודה.
 

pitoach

New member
זה מובנה ב SQL


קיראי חומר על הרמז "for XML"
יש הרבה מה ללמוד והרבה פרמטרים בהם ניתן להשתמש ברמז זה

* הערה: רמז היא מילה מקצועית והכוונה לא לרמז שלי

רמז או באנגלית hint הם תוספות לשאילתות המרמזות לשרת כיצד להריץ אותן ומה להחזיר לנו (למשל אפשר ברמז להגיד לשרת לא להפעיל אינדקס אפילו אם יש לו אינדקס ועוד) כאמור אחד הרמזים היפים המובנים בשרת SQL הוא הרמז להחזיר את התוצאה בפורמט XML
לדוגמה:
select * from MyTable for xml AUTO
ניתן לקרוא כאן עוד על הרמז הזה:
http://msdn.microsoft.com/en-us/library/ms178107.aspx
 

usi1

New member
תודה... אפשר עוד שאלה בבקשה?

הלכתי על ה :

FOR XML PATH , ROOT('MyList') , TYPE

ובאמת זה מיצר לי יופי של XML על הדטה בייס

עכשיו מה?

איך אני נותנת את זה ללקוח?

האם יש דרך שה XML הזה יופץ לשרת ואז אוכל לתת לו URL שמכיל שם של קובץ XML ? יש איזה תהליך אוטומטי כזה ?
האם זה צריך לעבור דרך קוד כלשהוא שיקרא לפרוצדורה שתייצר את ה XML ?נניח:
domain/file.aspx?param=1
??

כל הכוונה תתקבל בברכה...

תודה.
 

pitoach

New member
כמובן שאפשר
בשביל אנחנו כאן... אבל...

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

למה זה לא קשור למסדי נתונים?
כי אם את רוצה שיהיה "URL" בה המשתמש יוכל לראות את התוצאה אז את צריכה לפתח אפליקצית שרת. למשל אתר אינטרנט (עם טכנולוגיית צד שרת).שזה הפתרון הכי קל, או אפליקציית WEB SERVICE שזה פתרון יותר גמיש שמאפשר לכל אפליקציה ברשת לגשת אליו, או הטוב ביותר בדרך כלל אפליקציית WCF שמאפשר גמישות הרבה גדולה גם מ WS ומאפשר לכל אפליקציה בכל פרוטוקול לגשת לשירות.

לכן על מנת לעבור לשלב ההמשך נשאלת השאלה הגדולה: מה ידע שלך ומה הכיוון שיכול להתאים לך? איזה טכנולוגיות ואיזה שפות אתה מכיר?
 

usi1

New member
תודה ו ...

c#
asp.net
asp
אני כרגע עובדת על אתר ישן מאוד שלא תומך בדוט נט וביקשתי להתקין fw4.5, אני מאוד מקווה שזה יקרה מתי שהוא....
תומך רק ב ASP כרגע
יותר קל לי בדוט נט
אני חושבת שהפתרון הפשטני הוא לתת דף ASP שקורא לפרוצדורה ומעביר לה פרמטרים, אם אני מבינה נכון?
אני מכירה תיאורטית בלבד את הנושא של WCF ואשמח להכוונה בעניין.
תודה.
 

pitoach

New member
אין שום בעיה לעבוד ישירות רק ב ASP3 גם

ואפשר גם לבצע פעולות שונות מאחורי הקלעים

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

שתי דרכים לדוגמה מהירות בלי אפיון מלא אלא רק בסיס:
1. ב ASP ניתן לעבוד עם אובייקט הקבצים של VBS ואז ליצור קובץ פיזי בשרת ולהכניס לו את מה שחזר ממסד הנתונים. נותנים לקובץ שם בסיומת XML ואז בעמוד שמים קישור לקובץ (כמובן צריך למטב ולאפיין את הפתרון... למשל אם הקובת כבר קיים אז חוסכים את ההכנה שלו אולי).
2. אם צריכים דינאמיות של נתונים עדכניים בכל פנייה אפשר פשוט ב HEADER של העמוד שנוצר לקבוע שמדובר בקובץ מסוג XML. לבנות את התוכן של העמוד בצורה פשוטה ביותר על ידי response.write ולשים בתוכן את מה שחזר ממסד הנתונים. מי שילחץ על הקישור יפתח לו קובץ XML

אני מציע לחפש חומר על יצירת אקסלים מ ASP. זה בדיוק אותו דבר פרט ל HEADER שונה.
במקום לעבוד עם:
Response.ContentType = "application/vnd.ms-excel"
אנחנו נעבוד עם
Response.ContentType = "text/xml"
כמובן שיש לזכור להגדיר קידודים מנתאים ועוד הגדרות אבל זה הבסיס
 

usi1

New member
פתרון מספר 2 זה הפתרון המתאים ....

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

pitoach

New member
זה לא מקום מתאים להעביר מדריך שלם בפורום

אתה מוזמן לפתוח כל מדריך של WCF או WS

הרעיון הבסיסי הוא שניתן לפנות לשירות חיצוני של WCF או של WS כדי לקבל את התוכן של ה XML או אפילו ישירות את הקובץ של ה XML בפרוטוקול FTP למשל אם עובדים עם WCF.

אני מציע להתחיל ממה שיועים (עם ASP קלאסי) ולתת את הפתרון תחילה ואז לעבור ללמוד WCF מהיסוד (תוך לימוד של כמה ימים בודדים ניתן יהיה לעבור לשימוש בו כבסיס לרוב האפליקציות שרת-לקוח שלך כניראה)
 

usi1

New member
מקסים .תודה.

יש לי את הבסיס התיאורטי של WCF אבל לא את הפרקטיקה.
 
למעלה