الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التأكد من وجود جدول قبل أنشائه

مغلق
بدأه moslem_12002 في 30 نوفمبر 2007 · 7 رد · 872 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كنت قد سئلت نفس السؤال من فتره وقد قام أحد الأعضاء مشكور بالأجابه على السؤال وكان عن طريق عمل داله تقوم بالعمل على فتح الجدول وأذا حدث خطا أذا فالجدول غير موجود ويتم انشائه المشكله دلوقتى انى مثلا عندى خمس جداول

أنا عاوز اعرف أيه الجدول اللى مش موجود علشان يتم انشائه لان ممكن يكون واحدم من الخمسه موجود وبالتالى هيطله error والبرنامج بالكامل يقف أرجو كود مقارنة أسم الجدول بأستخدام ado مش dao لانى عارف الكود الخاص بالداو

أنا عاوز بالأدو أزاى أقارن أسم الجدول

وجزاكم الله خيرا

سبحان الله وبحمده سبحان الله العظيم

s.gif

#2

المسأله بسيطه ام عن طريق فهرسة الجداول او التسميه بوضع جملة التفحص داخل جملة تكرار

اقتباس
كنت قد سئلت نفس السؤال من فتره وقد قام أحد الأعضاء مشكور بالأجابه على السؤال وكان عن طريق عمل داله

ضع مثال لهذه الداله وسأرى ان كنت استطيع تطوير المسألة لتصل الى حل بها

تم تعديل هذه المشاركة بواسطة HnHn في 30 نوفمبر 2007 في 23:16

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#3

خى العزيز hnhn

جزاك الله خيرا على الرد والله كنت بدأت افتقد وجودك بالمنتدى

هذا هو الكود الذى أعطانى أياه الأخ aldowsary

Function IsTableExist(ByVal sTableName As String) As Boolean
Dim rs As New Recordset

	On Error Resume Next
	rs.Open sTableName, cn

	If Err.Number<>0 Then
		IsTableExist = False
		Err.Clear
	Else
		IsTableExist = True
	End If

	rs.Close
	Set rs = Nothing
End Function

سبحان الله وبحمده سبحان الله العظيم

s.gif

#4

ومن الممكن أن تستخدم تقنية ADOX راجع المواضيع المميزة.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#5

في هذه الحالة يمكنك استخدام OpenSchema للاتصال المنشئ


Dim rs As New Recordset
Set rs = cn.OpenSchema(adSchemaTables)
On Error Resume Next
While Not rs.EOF
If rs.Fields(3) <> "ACCESS TABLE" And rs.Fields(3) <> "SYSTEM TABLE" Then
If rs!TABLE_NAME = sTableName Then
IsTableExist =True
Exit Function
Else
IsTableExist =False
End If
End If
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
End Function
Function IsTableExist(ByVal sTableName As String) As Boolean

تعديل بسيط ربما يعمل يفيدك بالتوفيق

#6

جزاكم الله خيرا

أخى العزيز Saad AL.Moosa هل من الممكن توضيح ما المقصود

أنا أستخدم adox دائما ولكن ما المقصود

أخى العزيز DreamNet طريقتك تعتمد على حالة الخطا أيضا ولكنها جميله

ولكن ما يزعجنى أنه بهذه الطريقه سيتم تنفيذ Function على كل جدول على حده ثم أربط مع قاعدة البيانات ثم أقوم بعمل التأكد من جديد

على العموم الطريقه تؤدى المطلوب جزاكم الله خير

سبحان الله وبحمده سبحان الله العظيم

s.gif

#7

الطريقة تعتمد على وجود خطأ

أين؟

الطريقة المستعملة تعتمد على جلب الجداول الموجودة أصلا في قاعدة البيانات

ثم عمل مقارنة مع اسم الجدول المراد انشاؤوه فقط

أظن أنها ليست مثل طريقة تتبع حدوث خطأ في فتح الجدول

أما عملية التنفيذ كل مرة فهذا يتوقف على طريقة عمل برنامجك

فيمكنك احضار جميع الجداول الموجودة بقاعدة بياناتك ووضعها داخل ليست أو متغير أو أي شئ يحفظ قيمها

وعند الحاجة تتأكد من التطابق بين هذه الأسماء واسم الجدول الذي تريد انشائه

#8

من الـ Refernce اختر المكتبه Microsoft ADO Ext. 2.8 for DDL and Security

الدالة التاليه تتأكد من وجود View معين داخل قاعدة البيانات إذا أردت ان تجعلها على الجداول غير VIEW إلى TABLE لاحظ انه لابد من ان تكون الكلمة بحروف كبيرة.

Function TableExist(TableName As String) As Boolean
Dim Cat As Catalog
Dim t As Table
Set Cat = New ADOX.Catalog
Cat.ActiveConnection = "Your Connection string goes here"

For Each t In Cat.Tables
	If t.Type = "VIEW" And t.Name = TableName Then
		TableExist = True
		Exit Function
	End If
Next


Set t = Nothing
Set Cat = Nothing
End Function

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Game Expert في 8 ديسمبر 2007 في 09:19

مدونتي: C++ Tips and Tricks

هذا الموضوع مغلق.

مواضيع مشابهة