הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

ODBC בתוך SSIS

More
17 years 9 months ago #2377 by inbs
ODBC בתוך SSIS was created by inbs
שלום,

כיצד אני מתחבר עם ODBC ב SSIS?
בDTS זה היה מאוד פשוט יש רכיב שנקרא other connection שם בחרתי ODBC ,וקישרתי את הרכיב לשרת וב connection בחרתי את הטבלה.

איך אני עושה זאת ב SSIS?

הסיפור:(אני רוצה להעביר נתונים מהפריוריטי לבסיס הנתונים שלנו ב 2005,אני התחברתי עם OLE DB, מבסיס הנתונים של פריוריטי שהוא 2005 לבסיס הנתונים שלנו וזה עבר מצוין,הבעיה היא עם התאריכים שהם יושבים בבסיס הנתונים של פריויריטי כמספרים INT ואין להם קשר לתאריך,אני הבנתי שזה מספר הימים מ 1-1-1900,לכן שינתי גישה ואני מנסה להתחבר עם ODBC של טאבולה שהוא יודע לעבוד עם התאריכים)

Please התחברות to join the conversation.

More
17 years 9 months ago #2378 by eldad
קודם כל אני ממליץ לך להשתמש ב ole db מיכיוון שהוא מהיר יותר מ ODBC,
אתה תמיד יכול להמיר את שדה ה int ל dateTime ע"י שימוש בקוד ואת זה אני גם
לא ממליץ לך לעשות מכיוון שעדיף להשתמש בשדה int על dateTime בתור שדה מפתח
מכיוון שזה משפר ביצועים של ה join-ים במחסן הנתונים.

אם אתה מחליט בכל זאת ללכת משום מה על ה ODBC  אזי יש לך שני אפשרויות:
א. ליצור בבסיס הנתונים linked server ל ODBC ומה SSIS להתחבר ב ole DB
ב. ליצור חיבור odbc ב SSIS ולהשתמש בו ע"י אובייקט dataReader ב data flow

שוב, אני ממליץ לך להישאר עם ה ole db ולהשתמש בשדה int עבור התאריך ולא date time
אני בפרוייקטים בד"כ משתדל לעבוד עם מפתחות קטנים עבור המימדים.

Please התחברות to join the conversation.

More
17 years 9 months ago #2379 by inbs
אני בעד גישה ב'.
אני אסביר לך את הבעיה, אני התחברתי עם OLE DB לבסיס הנתונים של פריוריטי (SQL SERVER 2005). הבעיה היא שהתאריכים שאני מקבל הם מספרים כגון 6123444 .(int)
איך אני מעביר מספר כמו 6123444 לתאריך
כאשר רשמתי את הפקודה הבאה:
DateAdd(d,DueDate,'1/1/1900')

הוא רושם לי שזה OVERFLOW. כנראה שזה מספר גדול.

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

Please התחברות to join the conversation.

More
17 years 9 months ago #2383 by inbs
הבעיה היא שאת המספרים מתוך הבסיס הנתונים הם למשל:
UDATE ORDNAME
10778400 7A000002
6173280 17I00264

10778400 זה 29.06.08
6173280 זה 27.10.99

כאשר ניסיתי לחבר ODBC רגיל זה לא נתן לי, אלא הייתי צריך לבחור ב connection manager את ADO.NET ושם לבחור ODBC, ואז לעשות data conversion.
השאלה האם ברגע שאצליח לייצר ODBC של טאבולה (כי זה התחברות לפריוירטי) השלבים שלעיל יפתרו לי את הבעיה עם התאריך?(וזאת הדרך הנכונה ליצור חיבור ב SSIS?)

תודה על העזרה

Please התחברות to join the conversation.

More
17 years 9 months ago #2384 by eldad
הסיבה ש select  dateAdd(d,6123444,'1/1/1900') נותן לך שגיעה היא
ש 6123444 יום זה יותר מ 17 אלף שנה.......  ???
אני חושב ששיטת ההמרה היא שונה.

בכל מקרה האם ניסיתה ליצור חיבור odbc ב SSIS ולהעביר data תוך שימוש ב
data reader source?

Please התחברות to join the conversation.

More
17 years 9 months ago #2387 by inbs
כן, אך החיבור לא נעשה דרך ODBC רגיל אלא  דרך:
New Connection->ADO.NET->ODBC Data Provider
בחרתי DataReader Source (כי הוא מכיר רק את הODBC הנ"ל.כי את ה ODBC הרגיל הוא לא מכיר).
וב Sql Command (שנמצא בDataReader Source )  רשמתי שאילתא פשוטה
SLECT * FROM TODOLIST.

הבעיה שהוא לא מעביר את הנתונים ל OLE DB Destination.
אומר שהטיפוסים לא אותו דבר (ולנסות להמיר לא נראה לי כי יש לי כ 10 טבלאות להעביר וכל טבלה מכילה כ 30 שדות ,אז נראה לי קצת לא הגיוני).

עליי לציין ש הODBC מוגדר כ SQL SERVER ,
האם ברגע שאגדיר אותו כTABULA DRIVER,זה יפתור את הבעיה גם של הטיפוסים,ואת סוג התאריך?????
האם הגדרתי נכון ב SSIS את החיבור ל ODBC דרך ADO.NET\ODBC PROVIDER???





Please התחברות to join the conversation.

More
17 years 9 months ago #2388 by inbs
מנסה לעלות תמונה

Please התחברות to join the conversation.

More
17 years 9 months ago #2393 by inbs
אני צריך להגדיר רק כODBC לאטבולה על מנת שהנתונים יעברו כמו שצריך ,ולמנוע עברית הפוכה למשל.

האם הגדרה של ADO.NET ושם בחרתי ODBC היא נכונה?

כי כאשר בחרתי ODBC רגיל ובSql Command רשמתי שאילתא נרשם לי שיש בעיה בחיבור.

Please התחברות to join the conversation.

More
17 years 9 months ago #2394 by eldad
האמת שבנוגע לעברית הפוכה אני השתמשתי בקוד ע"מ להפוך אותה בחזרה
אך זה לא תוצאה נכונה ב 100% .
אני חושב שבמקרה זה יכול להיות פיתרון אחר.
האם ניסיתה לבצע יבוא למערכת אחרת והנתונים הועברו תקינים?

Please התחברות to join the conversation.

More
17 years 9 months ago #2396 by inbs
השאלה מה ההבדל בין חיבור ODBC ב ADO.NET
לבין חיבור ODBC רגיל

Please התחברות to join the conversation.

More
17 years 9 months ago #2409 by eldad
odbc הינו חיבור המתבצע דרך מערכת ההפעלה ומבוסס על אוביקטי COM
ado.net מבוסס על ה .net frame work וזה הכיוון העתידי....
בכל מקרה במקרה שלנו שניהם מבוססים ODBC ולכן זה אומר שהחיבור יחסית
איטי ....

Please התחברות to join the conversation.

Moderators: eldad
Time to create page: 0.359 seconds