642
צפיות
צפיות
24
תשובות
תשובות
אני מאבדת עברית בהכנסה לבסיס נתונים
אני בונה אתר בASP שמכניס נתונים לבסיס נתונים של ACCESS. האתר מציג עברית ללא בעיה.
הבעיה היא שחומרים שמוכנסים לבסיס הנתונים מאבדים את character encoding ונראים כמו יוונית בתוך בסיס הנתונים ומוצגים למשתמש בסימני שאלה.
(השתמשתי ב –
Session.CodePage=1255;
וגם בכל עמוד
<%@LANGUAGE=JScript @CodePage="1255" %>
וגם
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1255">)
מה אני יכולה לעשות כדי לשמור על ה-character encoding כשאני מכניסה מידע לבסיס הנתונים?
24 תשובות
גם לי יש בעיה דומה, אבל גיליתי משהו
זה אולי מפריע לך שאת מסתכלת על הבסיס נתונים…
אבל כאשר את משתמשת בהם בתור משתנים התוכן שלהם למשל את כותבת "נורית" נשאר "נורית" גם אם הוא נראה כמו גיבריש.. ואם את עושה RESPONSE.WRITE זה מראה נורית ולא סימנים.
response write לא עוזר אצלי
זה נותן לי סימני שאלה
איזה גרסא של אקסס?
על איזה מחשב יושב השרת, בחו"ל או בארץ?
מה מוגדר ב local אנגלית או עברית?
Access 2000
ב FAQ כבר ביקרת?
ניסית לא להשתמש ב codepage בכלל?
ולמה שאלתי אותך שלוש שאלות וקיבלתי תשובה רק על אחת?
סליחה, פספסתי את שתי השאלות בפנים –
אז ככה –
המחשב הוא שרת בחו"ל, באתר http://www.brinkster.com, עם סרבר –
Windows 2003 Webservers. יש להניח שהשפה היא אנגלית (אין לי גישה לשרת).
מסיבה זו אני חייבת codepage, אחרת אני מאבדת את כל סוגי העברית.
אגב אם אני מכניסה מידע לבסיס נתונים על המחשב שלי ואז מעבירה את בסיס הנתונים לאתר – המידע מוצג נכון בעברית. הבעיה היא עם מידע שמוכנס לבסיס הנתונים דרך האתר.
אממ עוד שאלונת קטנה בשבילך עם איזה
עורך את משתמש? 1stpage?
אני מניח שעבור ASP הוא משתמש
בעורך Edit Plus כמו רבים אחרים. (אני מביניהם )
היא () משתמשת דווקא בhomesite
אבל שימו לב שאין לי בעיה בטקסט שמגיע מדפים של העורך. יש לי רק בעיה עם מה שמוכנס דרך האתר לתוך בסיס הנתונים. כך שאני לא חושבת שבמקרה הזה זה קשור.
גיליתי מה הבעיה –
במקרה שלי היה מדובר בדפים שלא רק הכניסו נתונים לבסיס הנתונים אלא גם העלו קובץ והקומפוננטה שהעלה לי את הקובץ דפק לי את העברית.
אז אם יקרה לכם דבר דומה (למרות ששמתם את כל הטגים הנכונים) – תתחילו לבדוק קומפוננטות .
קודם כל מזל טוב…
דבר שני, על איזה רכיב מדובר?
ודבר שלישי, איך פתרת את הבעיה?
לרוב הקומפוננטות שמטפלות גם בטקסט יש איזה שהיא שיטה לבצע encoding, לדוגמא ב CDONTS יש מתודה שנקראת setLocalid או משהו בסגנון, אני לא זוכר בדיוק כרגע…
זה ASPUpload
ובאמת יש שם אפשרות לקבוע את השפה. פשוט לקח לי זמן לזהות שזו הבעיה .
לא מצליחה לשלוח מיילים בקידוד עברי
אני שולחת דואר ב-ASP בעזרת CDOSYS (וכן, קראתי את המאמר). הוספתי תגיות לעברית ובכל זאת המייל שמגיע אלי נפתח בברירת מחדל של מערב אירופה ולא עברית וצמוד לשמאל ולא לימין.
אפשר בכלל לשנות את זה?
את הקוד אני שמה בהודעה הבאה (כדי להצמיד לשמאל).
הקוד לשליחת דואר
var MyMail = Server.CreateObject("cdo.message");
MyMail.From =sFromName +"<"+sFromAddress+">";
MyMail.To = sSendtoString;
MyMail.Subject = sSubject;
MyMail.HTMLBody = sContent;
MyMail.BodyPart.Charset = "Windows-1255";
MyMail.HTMLBodyPart.charset = "Windows-1255";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2;
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="sendmail.brinkster.com";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="[email protected]";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="chava";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1;
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25;
MyMail.Configuration.Fields.Update();
MyMail.Send();
MyMail=false;
הקוד עוד פעם (מיושר באמת לשמאל)
var MyMail = Server.CreateObject("cdo.message");
MyMail.From =sFromName +"<"+sFromAddress+">";
MyMail.To = sSendtoString;
MyMail.Subject = sSubject;
MyMail.HTMLBody = sContent;
MyMail.BodyPart.Charset = "Windows-1255";
MyMail.HTMLBodyPart.charset = "Windows-1255";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2;
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="sendmail.brinkster.com";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="[email protected]";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="chava";
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1;
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25;
MyMail.Configuration.Fields.Update();
MyMail.Send();
MyMail=false;
ואם אני כבר פה – שאלת SQL
אני מחברת שאילתא ל-ACCESS ואני לא מצליחה למצוא את התחביר לאסוף יותר משדה אחד ב-Right Join. כל הדוגמאות הן של inner joins שהם מחוברים ואני פשוט אוספת הרבה שדות ובין השדות השונים יש יותר משדה אחד שאני צריכה לאסוף מטבלה אחרת(אם יש).
מישהו יודע מה התחביר הנכון?
מאמר !
הממ
SELECT [a].*
FROM [a] RIGHT JOIN [b] ON ….
אני צריכה את העזרה שלכם בתחביר
ואני שואלת כי המאמרים לא עזרו לי.
אז ככה, כי שאמרתי אני אוספת נתונים מ-3 טבלאות. הright join, לשדות של הטבלה השניה עובדת (לפי הסינטקס הרגיל) ואני לא מצליחה להוסיף עוד right join לשדות של הטבלה השלישית. ניסיתי AND, OR, פסיקים והכל נותן לי הודעת שגיאה. וכל הדוגמאות של שרשור הן לinner join או של inner join עם right join ואני צריכה לצרף right joins.
אז אנא, תנו לי דוגמא איך לעשות את זה. אתן לכם שמות טבלאות לדוגמא ותראו לי איך הייתם כותבים את התחביר של ה-From
אני אוספת הודעות משתמשים מטבלה של פורום ForumMessages, ה-join הראשון הוא לטבלת משתמשים Users שם אני לוקחת שם ודואר של משתמש, והjoin השלישי שאני עושה ניגשת לטבלת בלוגים Blogs ושולפת משם את מספר הבלוג של אותו משתמש (אם יש לו, ואם אין לו אז NULL).
השדות לשרשור הראשון הם
ForumMessageUser (מכיל מספר משתמש) מול ה-UserId
ולשרשור השני (אותו אני לא מצליחה לצרף, כי לא ברור לי התחביר) –
ForumMessageUser מול BlogUser.
בבקשה כתבו לי איך הייתם משרשרים את הjoin הזה.
תודה
אין לאף אחד עיצות בשבילי?
ניר, אתה יכול לעזור לי עם זה?
אין הבדל בין inner join
ל-right join תחבירית רק לוגית. זה בסה"כ שינוי האופרטור שמשמאל ל-JOIN
תראי מה ניסית ואנו נעזור לשפר
בגדול זה מה שעשיתי –
At the moment I am using a Join – from table ForumMessages and table Users –
SELECT [ForumMessages].[FMsgId],…,[Users].[UserName],…
FROM Users Right JOIN ForumMessages ON [Users].[UserID] =[ForumMessages].[FMsgUser]
I don't know how to also add a join to a third table Blogs. The join to Blogs would be like this if there were only 2 tables –
SELECT [ForumMessages].[FMsgId],…,[Blogs].[BlogId],…
FROM Blogs Right JOIN ForumMessages ON [Blogs].[BlogUser] =[ForumMessages].[FMsgUser]
How do I combine these into one query – always taking all the ForumMessages and adding information from Users and Blogs?
לא משהו מסובך
SELECT Users.<fields>, A.Fields
FROM Users
RIGHT JOIN (
Blogs RIGHT JOIN ForumMessages
ON [Blogs].[BlogUser] =[ForumMessages].[FMsgUser]
) A
ON [Users].[UserId[=[ForumMessages].[FMsgUser]
השדות שאתה רוצה לשלוף מהטבלאות blogs ו-ForumMessages תקרא להם ע"י כתיבת האות A (שנתתי את האות הזו ככינוי(Alias) לטבלת האיחוד) הוספת נקודה ושם השדה מ-Blogs או ForumMessages.
נ.ב
כתבתי את הקוד הזה על עיוור לכן אל תיתפוס אותי במילה שזה עובד.
בהצלחה