שאילתא...

gilmad

New member
שאילתא...

האם אני יכול גם לשלוף מידע מסויים וגם לעדכן תא מסויים באותה שאילתא? לדוג' ברגע שאני רוצה להציג תא מסויים עם ID של 18 ויש בו תא הסופר כמה פעמים התא נצפה, איך אני גם שולף וגם מעדכן? אשמח לקבל דוגמא פשוטה :) בתודה מראש: Guli
 

yuvallb

New member
stored procedures

יש דרך אלגנטית לעשות את זה, אבל לצערינו זה לא קיים ב mysql (יהיה בעתיד). עם איזה בסיס נתונים אתה עובד?
 

gilmad

New member
ככה:

עשיתי את זה כבר בשתי שאילתות, רק רציתי לדעת אם יש דרך יותר חכמה... ומה הכוונה ב"תשתמש בטראנזאקציה "?
 
טראנזאקציה.

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

OriIdan

New member
קוד פתוח מאד מוגבל?

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

Terminal Frost

New member
עלות מול תועלת

למה לבזבז שעות בכתיבה של קוד שיעשה את העבודה של קוד מקומפל, בדוק, חסין שמישהו כבר כתב? זה פשוט עניין של עלות מול תועלת. אם בוער לך ליישם את מה שmySQL לא הספיקו לעשות, ובזבזת יומיים לכתוב בC את הפונקציות שיעשו טרנזקציות על המסד - תשלח למפתחים שלהם את הקוד, זה יועיל הרבה יותר.
 
חחח... "בחרו לא לעשות את זה".

כולכם בתקווה לאיזה עתיד יפה יותר עם קוד פתוח. אבל הקוד הפתוח לא זז לשום מקום בינתיים על פי סטטיסטיקה עולמית אנשי הקוד הפתוח עדיין מהווים פחות מ5% מאוכלוסיית הדפדפנים וזה אומר משהו על האוכלוסיה עצמה. אני אישית רוצה לפתח עם מסד חזק ומלא פונקציות את מה שאני צריך באמת ולא לפתח את המסד עצמו כדי שאני יוכל לעשות אתה העבודה. אמנם אופציה מאוד יפה לפתח לעצמך את הפונקציות אבל זה לא אמור לחפות על החסרונות הרבים של הקוד הפתוח שבינתיים מוכיח את עצמו כחלש. בעוד שהקוד הפתוח מורכב מאלפי אנשים לא מאורגנים שכל אחד זורק איזו פיסת קוד וביחד נוצר מבנה רעוע בקוד הסגור הכל מפוקח ומבוקר ונוצר משהו חזק ,מתאים לאוכלוסייה, מגוון ועשיר. תחשוב שבינתיים לאוכלוסיית הקוד הפתוח ברובה הענק נחסם כרגע עולם תכנות שלם של תכנות תוך מסדי כמו stored procedures, views ועוד הרבה שמחזקים את האבטחה והיעילות של התוכניות ורק אלו שיכולים להרשות לעצמם oracle(ומעטים הם היכולים) מקבלים הצצה לעולם המופלא הזה.
 

OriIdan

New member
כנראה שלא הבנת את מודל הפיתוח

קוד פתוח זה לא נכון שכל אחד זורק פיסת קוד ונוצר מבנה רעוע. יש מנהל פרויקט ומתחתיו צוות בדיוק כמו בקוד קינייני רק שיש מתחתיו קבוצה הרבה הרבה יותר גדולה ולכן האיכות גבוהה יותר. בקוד פתוח התוצאה מתאימה לאוכלוסיה מאחר וזה נבנה לפי בקשות של האוכלוסיה בעוד בתוכנה קיניינית הדברים נבנים לפי שיקול דעתו של מנהל המוצר שהשיקולים שלו הם איך עושים יותר כסף ולא בהכרח איך עושים דבר טוב יותר ללקוח. מנהל המוצר הרי מקבל כסף מהחברה, לא מהלקוח הסופי, בניגוד לקוד פתוח בו המתכנת או כל אדם אחר מקבל את הכסף מהלקוח ולא מהחברה. ואם אתה מדבר על נושא Stored procedures שאגב רבים מפקפקים ביתרון של זה, אתה יכול ללכת למסד PostgreSQL שגם הוא קוד פתוח ומכיל את זה. לקוד הפתוח שום עולם לא חסום מאחר והם יוצרים את העולם שלהם, לך כאיש תוכנה קיניינית רוב העולם חסום. לגבי הקוד הפתוח לא זז, תסתכל רגע על שוק השרתים לינוקס ואפאצ'י תופסים מקום נכבד ביותר. אתה מדבר על שוק הדפדפנים... שוק זה נשלט על ידי ענק שיווקי אגרסיבי. דבר שבאמת חסר לקוד הפתוח זה שיווק. לקוד הפתוח יש איכות תכנות הגבוהה ביותר בעולם אבל שיווק, מהגרועים בעולם, לעומת זאת מיקרוסופט עם הכח השיווקי הגדול בעולם וגם הטוב בעולם, אז איכות התוכנה ממש לא משחקת. לגבי oracle תשאל אותם איזו מערכת הפעלה הם ממליצים לשרת שלהם, התשובה תיהיה לינוקס. למרות שהם מאד מאויימים מתוכנות כמו MySQL או PostgreSQL שמסטטיסטיקות שקראתי עולים בהרבה על oracle ביכולת שליפת נתונים בבסיסי נתונים על מאות אלפי רשומות.
 

OriIdan

New member
עוד כמה נקודות

אתה אומר שקוד פתוח מוכיח את עצמו כחלש בוא נבדור רגע את העובדות. 1. PHP שבה אתה מפתח היא קוד פתוח 2. אפאצ'י שהוא שרת האינטרנט שרוב האתרים רצים עליו הוא קוד פתוח 3. לינוקס שהיום תופסת מקום רב יותר ויותר הן בשרתים והן בתחנות עבודה היא גם קוד פתוח. 4. כמו שציינתי קודם, מחקרים שהישוו מהירות בסיסי נתונים הראו ש MySQL מהיר בערך פי שתיים מאורקל. ועוד סיפור שקראתי עכשיו, אתר weather.com שעבד עד עכשיו עם שרתי Solaris של SUN ועם websphere של IBM עבר לחלוטין למוצרים של קוד פתוח ולא רק שהם חסכו הרבה כסף אלא גם הגיעו לקיבולת גבוהה יותר. אתר weather.com משרת הרבה לקוחות עם העברת מידע בכמויות גדולות מאד. בסיס הנתונים שלהם הוא עדיין oracle אבל הם בתהליך העברה ל mySQL כך לפחות הבנתי ממה שהם אמרו. אני מניח שהם עשו את הבדיקות שלהם והם מן הסתם מבינים יותר ממני.
 
אז בוא אני אשבור לך כמה טענות.

1. למייקרוסופט יש יותר כסף היא יכולה לשכור צוות גדול ומקצועי יותר ובינתיים אני רואה שמייקרוסופט מספקים לאוכלוסייה שלהם את כל מה שהם צריכים ויותר ככה שאין אפילו צורך בפיתוח הזה. ושמע אם אתה כל כך רוצה איזו אופציה מסויימת לא קשה לפתוח את vc++ studio ולבנות לך איזו תוכנית שבה יש לך מלא אופציות נוספות שמייקרוסופט נתנו לך כעזר למפתח. 2. sp לא רק שהוא יותר יעיל הוא הרבה יותר יעיל
, הוא נכון מבחינה תיכנותית(השאילתות יושבות על המסד מקומפלות לשפת מכונה ואתה רק קורא להן), הן בטוחות יותר(אין כזה דבר sql injection בsp) ובמסדים גדולים דוגמת sqlsrv הן גם מבטחות הרשאות וגישות משתמשים. 3. לי בתור איש תוכנה קניינית עוד לא מצאתי אופציה שאני רוצה\צריך שלא מצאתי. 4. סעיף מאוד חשוב. לעולם אבל לעולם אל תשים את oracle באותה קטגוריה עם נחותים כמו mySQL. אורקל זה המסד הכי חזק יציב ומהיר בעולם הוא עולה עשרות אלפים ומסיבה נכונה. תחשוב שאפילו תפוז לא צריכים את כוחה של מערכת אורקל ומסתפקים בsqlsrv(שכמובן אין לזלזל בו) אורקל זו מערכת שהמקומות היחידים ששמעתי שמתמשים בה זה בתי חולים(נהריה והדסה לדוגמא). הוא מלא פונקציות ובאמת יש לו שפת תכנות משלו(pl-sql). 5. אני לא מפתח בphp אני מפתח בasp אבל החלטתי לנסות ולעזור לקהילה פה. 6. הסיבה היחידה שרוב השרתים הם אפאצ'י זה בגלל שזה חינמי. 7. בקשר לסעיף 4 שלך חה
אמרתי לך לא להשוות בחיים וגם לספר על מחקרים שהם בגדר שמועות טיפשיות. 8. רק כדי שתבין את המימדים... mySQL אם תכתוב קוד הכי יעיל ונכון תיכנותית תצליח להחזיק בערך 250-300 משתמשים בו זמנית. אורקל זה בסביבות כמה עשרות אלפים. וגודל של אתר לא מראה על היכולת של המתכנתים שלו. כי ראיתי כבר הרבה מאוד אתרי ענק(עשרות-מאות אלפי כניסות ביום) שלא הייתי מאמין שילד מעבר לכיתה ה' רשם את הקוד שלהם. מה שעושה אתר גדול זה הקונספט שלו לא הבנייה שלו.
 

OriIdan

New member
אתה כנראה לא מסתכל על העובודות

1. למיקרוסופט יש כסף אבל היא לא ממש צריכה לשכור עוד אנשים כי בנתיים היא מקבלת מספיק כסף על המוצרים שיש לה כמו שהם. אז בשביל מה לשפר? 2. לגבי SP אני לא רוצה להתווכח, יש דעות לכאן ולכאן ואני לא אומר שזה לא טוב. 3. לא אמרתי שבתוכנה קיניינית אין אופציות, רק שתמיד תצטרך להוציא עוד כסף בשביל כל אופציה... 4. לגבי זה ש mySQL מחזיק רק 200 או 300 משתמשים, זה בכלל לא נכון, זה נכון אולי לגבי בסיסי נתונים של מיקרוסופט אבל mySQL יכול לעבוד עם למעלה מ 1000 מתשמשים, ראיתי מערכות כאלו. כנס לאתר של mySQL ותקרא שם את המחקרים ואז תגיד שוב. 5. לגבי אפאצ'י שהוא חינם, נכון, אפשר לקבל אותו חינם אבל חברה גדולה ששמה שרת, לא חושבת על החסכון שהוא קטן יחסית בתשלום רשיון אלא על החסכון בעבודה השוטפת. בנתיים נראה שאתה זה שמדבר מבלי לבדוק את הנתונים. מאד לא ברור לי איך אנשים יכולים להגן על חברה כמו מיקרוסופט שמתנהגת כמו בריון ולא ממש מתחיחסת ללקוחות שלה. אני הייתי לקוח מיקרוסופט הרבה שנים וגם פיתחתי תוכנה לחלונות וגם ניסיתי לקבל תמיכה והם די התחמקו מתשובה ולא נתנו לי כלום... לפני כשנתיים עשיתי את הצעד של לעזוב אותם לחלוטין ולעבור ללינוקס, כן בהתחלה זה היה קשה, לא כי לינוקס לא טובה, כי היא שונה שונה לגמרי. לאחר שהתרגלתי וגם בעזרה של הקהילה הגדולה והתומכת בארץ, פשוט התאהבתי במערכת ואז גם למדתי יותר על נושא התוכנה החופשית והקוד הפתוח והפכתי להיות תומך נלהב של עקרונות התוכנה החופשית.
 
המנה...

כמו שאתה מבין אני לא איזה קרוסיידר של מייקרוסופוט אבל אני כן הולך עם מה שהכי טוב ויעיל בשבילי ונכון לתקופה זו אלו הם מייקרוסופט. בקשר לmySQL שאתה מגן עליו... פעם ניסיתי לעבור אליו אבל אז גיליתי שהוא מסד מוגבל מאוד ועם כל הכוונות היפות בינתיים הוא לא שווה בכלל. שבוע אחרי שעברתי אליו עולם שלם של אופציות ויכולות שהיו לי עם הaccess נסגרו לפני. בעוד שmySQL בגירסא המלאה הכי חדשה מתגאה במוצר הדגל שלו שזה שאילתות מקוננות וטראנזאקציות בaccess כבר הציגו את היכולות האלו בגירסא של שנת 97(מקסימום 2000) וaccess עבר עוד כברת דרך ארוכה מאז. שלא נדבר על כל הפונקציות vb המובנות במסד שחסרות בmySQL. אז בוא נגיד ככה... אני מעדיף לאבד את ה50 משתמשים בו זמנית ולקבל את הכוח והיכולות של acces על פני mySQL. ודרך אגב אקסס הוא רק מסד הכנה לsqlsrv שהוא חזק וטוב בהרבה ככה שאם אתה עובד נכון אתה יכול לעשות מעבר כמעט ישיר בין המסדים ללא צורך לשנות קוד ובmySQL אין לך לאיפה להתקדם חוץ מהתחלה מחדש. יפה שיש אידיאלוגיה ועקרונות בקוד הפתוח אבל בינתיים אני רואה שזה הדבר היחיד שיש שם.
 

OriIdan

New member
תעשה מה שאתה רוצה

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

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

OriIdan

New member
לא הבנת אותי

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

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