RSS 1.0 FEED Powered by GM-RSS ארכיון האתר בטל רישום כתוב אלינו משאבי הפריק רישום לאיגרת פורום מייקרוסופט פורום הפריק מי אנחנו דף הבית

פיתוח בסיסי נתונים על פוקט פיסי - יבוא ויצוא טבלאות בעזרת ADOCE
Amir - 25/12/2003
 

כתבה זו הינה הכתבה השניה בסידרת כתבות על פיתוח בסיסי נתונים על הפוקט.

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

כדי לייבא טבלאות מבסיס-נתונים ללא פעולות תכנות, יש להכנס לתוכנת ActiveSync לתפריט Tools. ראו תמונה:

AS-ImportExport (29k image)

הפקודה Import Database Tables תייבא מהמחשב השולחני אל הפוקט טבלאות מתוך קובץ .mdb או מבסיס נתונים תומך ODBC.
הפקודה Export Database Tables תייצא מהפוקט אל המחשב השולחני טבלאות מפורמט .cdb אל תוך בסיס נתונים על המחשב השולחני שיכול להיות קובץ .mdb או בסיס נתונים אחר תומך ODBC.

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


אם תנסו להעתיק קובץ של Microsoft Access אל הפוקט תגלו ש-ActiveSync ממירה אותו מקובץ mdb לקובץ מיוחד שמותאם לפוקט - cdb. המרה הפוכה תתבצע בעת העברת מסד הנתונים מהפוקט אל המחשב השולחני.

הערה: אותה ההמרה תתבצע גם בהעברת בסיס נתונים של SQL Server או כל בסיס נתונים שתומך ב-ODBC (Open Database Connectivity). על נושאים מתקדמים אלו אני אדבר בכתבת ההמשך לכתבה זו.

ההמרה מתבצעת באמצעות פילטר מיוחד שנמצא בקובץ adofiltr.dll. תמצאו את הקובץ בספריה של התוכנה ActiveSync.

שימו לב!
MS-Access אינה יכולה לקרוא את הקבצים שהומרו לפורמט .cdb ובנוסף לכך, לאחר ההמרה מהפוקט אל המחשב חלק מהנתונים המקוריים לא יחזרו אלא יאבדו. הפורמט המתקבל לרוב יהיה של Access95 ונסיון פתיחה של הקובץ יציג בקשה להמרה לפורמט החדש של Access 2002/2003. אפשרות להצגת הנתונים ללא המרה תהיה לקריאה בלבד.

על-מנת שנוכל להשתמש ב-API הזה עלינו לייבא את שתי הפונקציות אל סביבת הפיתוח באופן הרגיל בו מייבאים DLL.
שתי הפונקציות המרכזיות הן:

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


DESKTOPTODEVICE (DesktopLocn, TableList, Sync, Overwrite, DeviceLocn)

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


DEVICETODESKTOP (DesktopLocn, TableList, Sync, Overwrite, DeviceLocn)

הסבר לפרמטרים:
DesktopLocn זהו שם קובץ ה-Access או mdb הכולל נתיב מלא להימצאו במחשב השולחני -או- שם ה-DSN של בסיס הנתונים תומך ODBC.

TableList
רשימת הטבלאות להעתקה מהמחשב לפוקט או להפך (בהתאם לפונקציה שבשימוש).
בכדי להעביר את כל הטבלאות יש להכניס מחרוזת ריקה. בכדי להעביר מספר טבלאות מסויימות, יש להשתמש בפורמט:
"Table1..Table2..Table3"

Sync
ערכי true/false. בשימוש מול Pocket PC יש להשתמש ב- true כלומר לאפשר את ActiveSync בזמן העברת הנתונים. (פרמטר אינו חובה, true ברירת מחדל)

Overwrite
ערכי true/false. אם שם הטבלה קיים, בחירה ב-true תגרוס את הטבלה המיועדת. false תייצר הודעת שגיאה בזמן העתקה אל המחשב השולחני או שתשנה לטבלה את שמה בזמן העתקה אל הפוקט. (הפרמטר אינו חובה - true ברירת מחדל)

DeviceLocn
מיקום בסיס הנתונים על הפוקט (קובץ ה-cdb)


ייבוא הפונקציות מסביבות פיתוח שונות:
מכיוון שלשתי הפונקציות אותם פרמטרים, כדי לייבא את שתיהן יש להחליף את שם הפונקציה DEVICETODESKTOP ב- DESKTOPTODEVICE.

באמצעות Visual Basic:


Declare Function DEVICETODESKTOP Lib "\Program files\Microsoft ActiveSync\adofiltr.dll"
(ByVal desktoplocn As String, ByVal tablelist As String, ByVal sync As Boolean, ByVal overwrite As Integer, ByVal devicelocn As String) As Long

באמצעות #C עם Visual Studio 2003 .NET:


[ DllImport(@"\Program Files\Microsoft ActiveSync\adofiltr.dll") ]
private extern static int DESKTOPTODEVICE(String DesktopLocation, String TableList, bool Sync, Int16 Overwrite, String DeviceLocation);

הערה: יש להמיר את משתנה ה-Overwrite למשתנה בוליאני. במיוחד ב- #C שם בדיקת הטיפוסים מחמירה במיוחד.

הערות חשובות:
1. עליכם לוודא כי הנתיב המצויין של ActiveSync נכון.
2. קוד זה מיועד לרוץ דרך המחשב השולחני ולא דרך הפוקט! שימו לב כי אנו מייבאים פונקציות מ-DLL שקומפל עבור ה-PC ולכן לא ניתן לעשות בו שימוש על הפוקט.

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

תגובות, הערות ותוספות יתקבלו בברכה.

את הכתבה תוכלו למצוא גם בפורום להמשך דיונים מעמיקים בנושא.

אמיר ולדמן
(BlastPPC)
פורום המפתחים
פוקט פיסי פריק

[ הקודם: "אתר מועדון לבעלי מכשיר iMate" ] [לעמוד הראשי] [ הבא: "משטרת ישראל פשטה על בית של "מפיץ" לא חוקי של DESTINATOR" ]

Powered By Greymatter





חפש   
חפש באתר עם גוגל   
Google
Web pocketpcfreak.com
חברות התומכות באתר
Onroad
iGo Website
PocketPCNetL (5k image)
Visual CE
Pocket Gear
חפש מוצר באמזון
Search Now:
הגרלות באתר
פרסים ומעמדים
Helio Diamant and Saar Avigour are Microsoft MVPs
אתרים חברים
Pocket PC Thoughts
Pocket PC Writer Net