עבור לתוכן

הכנסת עיברית ל SQL , האם אפשר, ואיך? (סביבת עבודה- Dev-C++ )

Featured Replies

פורסם

אני מתכנת ב C++ כבר כמה זמן

ואני רוצה לתקשר עם שרת MySQL ולהכניס לו ערכים בעיברית

ניסיתי להכניס ערכים בעיברית לMYSQL והם יצאו כ ??? כאשר שיניתי את ה CHARSET של MYSQL לעיברית הערכים יצאו גיבריש (אני עבדתי אז דרך הSQL Command Line )

איך אני יכול להכניס ערכים בעיברית לSQL ? ולשלב את זה ב C++ (ז"א- האם קיימת תמיכה בעיברית ב C++ ,האם CHAR לדוגמא יכול להכיל אות בעיברית? )

רועי

פורסם

ב- windows, אם אתה רוצה לעבוד עם עברית ב- chars, (כלומר ב- ASCII) אתה חייב לעבוד כל הזמן עם codepage של עברית.

אם אתה עובד עם wchar (או TChar, ומקמפל עם הגדרות unicode) אז אין לך בעיה (רק אתה צריך שה- database שלך יתמוך בזה)

בכל אופן, אל תשתמש בעברית בתוך הקוד שלך, אלא תעבוד עם string tables.

כדי להימנע מבעיות, אל תרכיב את פקודות ה- SQL כשבתוכם יש חלקים בעברית, אלא תעביר את הערכים בעברית כפרמטרים.

פורסם
  • מחבר

ב- windows, אם אתה רוצה לעבוד עם עברית ב- chars, (כלומר ב- ASCII) אתה חייב לעבוד כל הזמן עם codepage של עברית.

אם אתה עובד עם wchar (או TChar, ומקמפל עם הגדרות unicode) אז אין לך בעיה (רק אתה צריך שה- database שלך יתמוך בזה)

בכל אופן, אל תשתמש בעברית בתוך הקוד שלך, אלא תעבוד עם string tables.

כדי להימנע מבעיות, אל תרכיב את פקודות ה- SQL כשבתוכם יש חלקים בעברית, אלא תעביר את הערכים בעברית כפרמטרים.

דבר ראשון תודה על התשובה:)

עכשיו עוד כמה שאלות ...

"אתה חייב לעבוד כל הזמן עם codepage של עברית"

מה זה אומר? (אתה מוכן להסביר מה זה codepage הנ"ל ?)

"(רק אתה צריך שה- database שלך יתמוך בזה)"

זאת הבעיה שלי....זה יוצא בdatabase או כגיבריש , או כסימני שאלה

מה שגיליתי זה שגיבריש אפשר לפרש בחזרה לעיברית כשמחזירים ערכים מהDB בחזרה לתוכנה

וזה מאוד תלוי בהרבה דברים - הכנסתי מכמה מקומות עיברית לDB והגיבריש יצא שונה

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

"אם אתה עובד עם wchar (או TChar, ומקמפל עם הגדרות unicode)"

אתה מוכן להרחיב בקשר ל wchar ,Tchar ומה זה אומר הגדרות unicode ?

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

שוב תודה רבה על התשובה:)

רועי

פורסם

הסבר על codepage -

בגלל שב- ASCII אין מקום לכל השפות, במקומות שונים ממפים חלק מהתוים בטווח 128-255 לתוים אחרים. ה- codepage הוא בעצם הגדרה באיזה מיפוי משתמשים.

ב- unicode אין את הבעיה הזו כי יש מספיק מקום לכל השפות, ולכל שפה יש את הטווח הקבוע שלה.

ה- codepage שבו windows משתמש בתור ברירת מחדל מוגדר דרך ה- regional settings ב- control panel.

יש סיכוי שגם ב- database אתה צריך להגדיר את ה- codepage בנפרד. (נדמה לי שה- codepage של עברית נקרא ISO 8859-8)

אני לא מכיר בכלל את MySQL אבל אני מניח שיש בו אפשרות להגיד לו באיזה codepage להשתמש (ואם אפשר unicode - יכול להיות שזה עדיף).

wchar זה טיפוס character ל- unicode שמשתמש ב- 16 ביט.

TCHAR זה טיפוס שמתפרש ל- char או wchar לפי הגדרות הפרוייקט. כלומר - אתה מוסיף ל- preprocessor definitions את המילה UNICODE.

פורסם
  • מחבר

תודה רבה על ההסבר :yelclap:

אני אנסה

רועי

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים