دورة في قواعد البيانات مع Gambas
صفحة 1 من اصل 1
دورة في قواعد البيانات مع Gambas
لسلام عليكم ورحمة الله
إن شاء الله سنبدأ مع قواعد البيانات في لغة البرمجة Gambas
بالنسبة للGambas فهي تتعامل مع العديد من قواعد البيانات من أهمها MySql و SQLite وسنبدأ مع هذان النوعان لأهميتهما
تختلف SQLite عن MySql أن الثانية تحتاج لخام يجب تثبته في الجهاز أو عبر
الشبكة بمافيها الأنترنيت ويتم الاتصال بقاعدة البيانات عبر منفذ في الغالب
يكون 3306 .
أما SQLite فلا تحتاج لخام بل يتم التعامل معها عبر ملف قاعدة البيانات مباشرة.
فلو أردنا التعامل مع الشبكات سيكون الاختيار الانسب هو MySql ولو كان
تعاملنا لا يحتاج للشبكات حيكون الاختيار الأنسب هو SQLite هذا باختصار،
الأن ندخل في الموضعنا هو التعامل مع قواعد البيانات وسوف نتعامل مع
النوعين معا بحيث لا يوجد بينهما اختلاف من ناحية الإستعلام فكهما يتعامل
مع لغة SQL فلا داعي للقلق.
كنت قبل ذلك شرحت كيفية ربط الاتصال البرنامج مع قواعد البيانات فلا داعي للتكرار ولمن
الان سوف أقوم بالشرح على أساس أنكم اطلعتم على الدرس لي في الرابط
كما رأينا في الدروس السابقة كيفية إنشاء والاتصال بقاعدة البيانات كما في الكود التالي:
MySQL :
كود PHP:
PUBLIC hcon AS NEW Connection
PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result
hCon.Type = "mysql"
hCon.Host = "localhost"
hCon.Port = "3306"
hCon.Name = "test3"
hCon.Login = "root"
hCon.Password = ""
hCon.Open()
END
بالنسبة SQLite
كود PHP:
PUBLIC hcon AS NEW Connection
PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result
pat = Application.Path
pat = pat & "/"
hCon.Close()
hCon.Type = "sqlite3"
IF Dir(pat).Exist("data.db") THEN
hCon.Name = pat & "data.db"
ELSE
hCon.Host = pat
hCon.Open()
hCon.Databases.Add("data.db")
hCon.Close
hCon.Host = ""
hCon.Name = pat & "data.db"
END IF
hCon.Open()
END
هذا فيما يخص الاتصال بقاعدة البيانات
أما فيما يخص بإنشاء جدول في داخل قاعدة البيانات فيكون الكود كالتالي :
كود PHP:
WITH hCon
IF NOT .Tables.Exist("Tel") THEN
hT = .Tables.Add("Tel", "MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci")
WITH hT
.Fields.Add("id",db.Serial)
.Fields.Add("nickname", db.String, 32)
.Fields.Add("Tel", db.String, 50)
.Fields.Add("Address", db.String, 0)
.PrimaryKey = ["id"]
.Update
.Indexes.Add("nickname", "nickname", TRUE)
END WITH
END IF
END WITH
Message.Info("لقد تم الاتصال بقاعدة البيانات وإنشاء الجدول بنجاح")
الأن بعدما أنشأنا قاعدة البيانات نريد إدخال البيانات فيها :
كود PHP:
hCon.Begin()
hResult = hCon.Create("Tel")
hResult!nickname = "bouhssini"
hResult!Tel = "0123456"
hResult!Address = "Maroc"
hResult.Update
hCon.Commit()
الان قد أدخلنا بيانات للقاعدة ، نريد الأن عرض البيانات :
كود PHP:
hResult = hCon.Exec("SELECT * FROM Tel;")
hResult.MoveFirst
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
هنا نفذنا الاستعلام وعرضنا البيانات في صناديق العرض
لو أردنا الانتقال لأول سجل في الجدول Tel نستخدم الأمر هذا
كود:
hResult.MoveFirst
ولو أردنا السجل التالي نستخدم الأمر هذا
كود:
hResult.MoveNext
ولو أردنا السجل السابق نستخدم
كود:
hResult.MovePrevious
أما لو أردنا السجل الأخير
كود:
hResult.MoveLast
الدرس الثاني
الصور المرفقة
إن شاء الله سنبدأ مع قواعد البيانات في لغة البرمجة Gambas
بالنسبة للGambas فهي تتعامل مع العديد من قواعد البيانات من أهمها MySql و SQLite وسنبدأ مع هذان النوعان لأهميتهما
تختلف SQLite عن MySql أن الثانية تحتاج لخام يجب تثبته في الجهاز أو عبر
الشبكة بمافيها الأنترنيت ويتم الاتصال بقاعدة البيانات عبر منفذ في الغالب
يكون 3306 .
أما SQLite فلا تحتاج لخام بل يتم التعامل معها عبر ملف قاعدة البيانات مباشرة.
فلو أردنا التعامل مع الشبكات سيكون الاختيار الانسب هو MySql ولو كان
تعاملنا لا يحتاج للشبكات حيكون الاختيار الأنسب هو SQLite هذا باختصار،
الأن ندخل في الموضعنا هو التعامل مع قواعد البيانات وسوف نتعامل مع
النوعين معا بحيث لا يوجد بينهما اختلاف من ناحية الإستعلام فكهما يتعامل
مع لغة SQL فلا داعي للقلق.
كنت قبل ذلك شرحت كيفية ربط الاتصال البرنامج مع قواعد البيانات فلا داعي للتكرار ولمن
الان سوف أقوم بالشرح على أساس أنكم اطلعتم على الدرس لي في الرابط
كما رأينا في الدروس السابقة كيفية إنشاء والاتصال بقاعدة البيانات كما في الكود التالي:
MySQL :
كود PHP:
PUBLIC hcon AS NEW Connection
PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result
hCon.Type = "mysql"
hCon.Host = "localhost"
hCon.Port = "3306"
hCon.Name = "test3"
hCon.Login = "root"
hCon.Password = ""
hCon.Open()
END
بالنسبة SQLite
كود PHP:
PUBLIC hcon AS NEW Connection
PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result
pat = Application.Path
pat = pat & "/"
hCon.Close()
hCon.Type = "sqlite3"
IF Dir(pat).Exist("data.db") THEN
hCon.Name = pat & "data.db"
ELSE
hCon.Host = pat
hCon.Open()
hCon.Databases.Add("data.db")
hCon.Close
hCon.Host = ""
hCon.Name = pat & "data.db"
END IF
hCon.Open()
END
هذا فيما يخص الاتصال بقاعدة البيانات
أما فيما يخص بإنشاء جدول في داخل قاعدة البيانات فيكون الكود كالتالي :
كود PHP:
WITH hCon
IF NOT .Tables.Exist("Tel") THEN
hT = .Tables.Add("Tel", "MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci")
WITH hT
.Fields.Add("id",db.Serial)
.Fields.Add("nickname", db.String, 32)
.Fields.Add("Tel", db.String, 50)
.Fields.Add("Address", db.String, 0)
.PrimaryKey = ["id"]
.Update
.Indexes.Add("nickname", "nickname", TRUE)
END WITH
END IF
END WITH
Message.Info("لقد تم الاتصال بقاعدة البيانات وإنشاء الجدول بنجاح")
الأن بعدما أنشأنا قاعدة البيانات نريد إدخال البيانات فيها :
كود PHP:
hCon.Begin()
hResult = hCon.Create("Tel")
hResult!nickname = "bouhssini"
hResult!Tel = "0123456"
hResult!Address = "Maroc"
hResult.Update
hCon.Commit()
الان قد أدخلنا بيانات للقاعدة ، نريد الأن عرض البيانات :
كود PHP:
hResult = hCon.Exec("SELECT * FROM Tel;")
hResult.MoveFirst
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
هنا نفذنا الاستعلام وعرضنا البيانات في صناديق العرض
لو أردنا الانتقال لأول سجل في الجدول Tel نستخدم الأمر هذا
كود:
hResult.MoveFirst
ولو أردنا السجل التالي نستخدم الأمر هذا
كود:
hResult.MoveNext
ولو أردنا السجل السابق نستخدم
كود:
hResult.MovePrevious
أما لو أردنا السجل الأخير
كود:
hResult.MoveLast
الدرس الثاني
السلام عليكم ورحمة الله
كما وعدناكم ها نحن سنكمل الدروس في التعامل مع قواعد البيانات في Gambas
عرفنا فيما سبق :اليوم سوف نتعلم كيفية البحث داخل قواعد البيانات
- ربط البرنامج بقواعد البيانات
- وإنشاء جدول داخل القواعد البيانات
- إدخال البيانات في الجدول
- عرض البيانات والتنقل داخل السجلات
نبدأ أولا بطريقة البحث عن طريق لغة الاستعلام SQL ، نفترض أننا نريد البحث عن
شخص اسمه مثلا : bouhssini
وإليكم المثال التالي :
كود PHP:
hResult = hCon.Exec("SELECT * FROM Tel WHERE nickname = 'bouhssini' ;")
IF hResult.Available THEN
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
ELSE
Message.Info("لا يوجد أي بيانات بالبحث الذي أدخلت")
END IF
ممكن نبحث عن طريق الاسم ورقم الهاتف كما في الكود التالي :
كود:
hResult = hCon.Exec("SELECT * FROM Tel WHERE nickname = 'bouhssini' AND Tel = '0123456';")
وهكذا يعني نستخدم لغة الاستعلام SQL عادي .
الان نذهب لطريقة البحث الثانية ، نفس المثال لكن بطريقة ثانية إليكم المثال
كود PHP:
hResult = hCon.Find("Tel", "nickname = &1 AND Tel = &2", "bouhssini", "0123450")
IF hResult.Available THEN
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
ELSE
Message.Info("لا يوجد أي بيانات بالبحث الذي أدخلت")
END IF
هنا استخدمنا أمر Find الذي هو عنصر من عناصر hCon ، في هذا العنصر يحدد لنا أول خيار
لتعريف الجدول الذي نبحث بداخله ، ثاني خيار هي عبارات البحث ونرمز للمتغييرات بـ :
كود:
&1 &2 &3 ...
حسب العدد المتغييرات لي نستخدمها في البحث ، وأخيرا الخيار الرابع عبارة عن قيمة هذه المتغييرات
كما في مثالنا ونفصل بينها بفاصلة
كود:
"bouhssini","0123456",...
وهكذا.
في درسنا الاحق إن شاء الله سنتعلم كيفية ربط صنادق الحوار بقاعدة البيانات تلقائيا
والان أستودعكم الله وأسأل الله الكريم أن أكون قد أفذت إخوتي.
وأحب أن أبشر الاخوة أني بصدد تصميم برنامج بلغة Gambas للشات يدعم الصوت والصورة
مثل برنامج MSN لكن الميزة لي حتتوفر لنا أن البرنامج سوف يدعم الصوت والصورة وأيضا
سوف أعمل نسخة لأصحاب الوندوز باستخدام VB6 بمعنى أنه ممكن تتكلم مع شخص
يستخدم الوندوز وأنت تستخدم لينكس ، وأن شغال عليه هذه الايام ، وهذه صورة أولية للبرنامج
Click here to view the original image of 667x500px.
المصدر مجتمع لينُكس العربي
الصور المرفقة
Screenshot.png
(681.4 كيلوبايت, 711 مشاهدات)
مواضيع مماثلة
» دورة البرمجة بإستخدام Gambas
» قواعد البيانات
» دورة البرمجة بإستخدام Gambas (( المقدمة + برنامج الترحيب ))
» جداول البيانات
» ستوديو البيانات بالموقع 7.1.0 | 201.45 mb
» قواعد البيانات
» دورة البرمجة بإستخدام Gambas (( المقدمة + برنامج الترحيب ))
» جداول البيانات
» ستوديو البيانات بالموقع 7.1.0 | 201.45 mb
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى