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

اكثر من مستخدم يطلب من قاعدة البيانات نفس الطلب

مغلق
بدأه Munir في 30 سبتمبر 2007 · 15 رد · 2,007 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

ويتم ادخال البيانات من خلال واجهات برنامج vb.net2005

سؤالي هو ؟

عندما يقوم عدة مستخدمين على الاجهزة الطرفية بطلب عمل فاتورة جديدة في نفس الوقت

مثلا

مستخدم1

مستخدم2

مستخدم3

مستخدم4

قاموا بطلب عمل فاتورة في نفس اللحظة ( تمت العملية على جدول واحد )

هل ستلبي قاعدة البيانات جميع طلباتهم وتعطي كل مستخدم رقم مختلف عن الاخر ( حقل رقم الفاتورة هو Primary Key ) ؟

مثلا تكون النتيجة في قاعدة البيانات كالتالي

رقم المستخدم ........ رقم الفاتورة

مستخدم1 ................ 101

مستخدم2 ................ 102

مستخدم3 ................ 103

مستخدم4 ................ 104

ام ستلبي قاعدة البيانات طلب مستخدم1 وتلغي طلب المستخدمين الاخرين ؟

ام هل سيحصل كل المستخدمين على نفس رقم الفاتورة ( وهنا راح تحدث مشكلة التكرار في حقل رقم الفاتورة ) ؟

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

هل تتحمل قاعدة البيانات SQL-Server مثل هذا الضغط عليها !!!!!

#2
اقتباس
هل ستلبي قاعدة البيانات جميع طلباتهم وتعطي كل مستخدم رقم مختلف عن الاخر ( حقل رقم الفاتورة هو Primary Key ) ؟

هذا الكلام يعتمد على طريقة برمجتك لكن بشكل عام اذا كنت تستخدم الدالة Max للحصول على اخر فاتورة سيأخذ الجميع نفس الرقم لكن في النهاية واحد سينجح في التخزين والبقية سيظهر عندهم خطأ .

طبعا معالجة هذا الموضوع لا يمكن شرحه في عدة اسطر وانما بحاجة الى مراجعة مقالات وكتب وان تبحث عن transactions & row locking

اقتباس
هل تتحمل قاعدة البيانات SQL-Server مثل هذا الضغط عليها !!!!!

واكثر من ذلك بكثير

#3

مشكور اخ طارق

ايش رأيك لو قمت بتعديل تصميم قاعدة البيانات بحيث يكون لكل مستخدم تسلسل فريد ومختلف عن الاخر

يعني

مستخدم1

يبدأ تسلسل الحركات اللي قام بها 1 ثم 2 ثم 3 وهكذا

مستخدم2

يبدأ تسلسل الحركات اللي قام بها 1 ثم 2 ثم 3 وهكذا

وهكذا لباقي المستخدمين على الشبكة

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

#4
اقتباس
هل ستلبي قاعدة البيانات جميع طلباتهم وتعطي كل مستخدم رقم مختلف عن الاخر ( حقل رقم الفاتورة هو Primary Key ) ؟

ام ستلبي قاعدة البيانات طلب مستخدم1 وتلغي طلب المستخدمين الاخرين ؟

ام هل سيحصل كل المستخدمين على نفس رقم الفاتورة ( وهنا راح تحدث مشكلة التكرار في حقل رقم الفاتورة ) ؟

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

الإجابة الدقيقة على هذا السؤال هي :

أن SQL Server ينفذ التعليمات T-SQL دائماً و أبداً على التسلسل حتى لو جاءت تلك التعليمات إلى السيرفر من عدة مستخدمين في نفس اللحظة

فإن SQL Server يقوم بسلسلتها و من ثم تنفيذها .. كنت منذ فترة وجيزة أدرس آلية التنفيذ و تاكدت من ذلك أثناء قراءتي التخصصية عن المناقلات

في SQL Server 2005 من كتاب لمايكروسوفت :

SQL Server 2005 Programming

فصل المناقلات ..

بالتوفيق يا أحباب .

تم تعديل هذه المشاركة بواسطة imadouzoun في 30 سبتمبر 2007 في 17:09

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#5

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

وبه نستعين

اقتباس
قاموا بطلب عمل فاتورة في نفس اللحظة ( تمت العملية على جدول واحد )

إذاكانت العمليه على جدول واحد فإنه يحدث lock أو منع اي مستخدم من إجراء العمليات على هذا الجدول تلقائيا الى ان تتم العمليه شرط ان تكون جملة واحده او ترانسأكشن واحد

اقتباس
ايش رأيك لو قمت بتعديل تصميم قاعدة البيانات بحيث يكون لكل مستخدم تسلسل فريد ومختلف عن الاخر

ماذا تقصد بذلك هل هيا عمليه واحده ام اكثر ؟؟

وايضا لا أظن أن ذلك يحل المشكله لكن اريد توضيح أكثر حتى استطيع ان افهم المشكله اكثر

والسلام عليكم ورحمة الله وبركاته

MCSD

#C

#6

يعني

مستخدم1

يبدأ تسلسل الحركات اللي قام بها 1 ثم 2 ثم 3 وهكذا

مستخدم2

يبدأ تسلسل الحركات اللي قام بها 1 ثم 2 ثم 3 وهكذا

وهكذا لباقي المستخدمين على الشبكة

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

#7

ماذا تقصد بالحركات

MCSD

#C

#8

invoice_no

#9

يا صاحبي قلت لك لا مشكلة في كون الطلبات تأتي إلى SQL Server في نفس اللحظة ..

لذا فإن احتمال الخطأ الذي تتحدث عنه غير وارد الحدوث على الإطلاق !!!

خصوصاً إذا كان رقم الفاتورة Identity يعني ترقيم تلقائي أو ما شابه من طرق ترقيم .

صدقني أنا جربت تجربة تثبت 100% ما أقول لك .. و سأعطيك إياه إن شئت .. لكن لا وقت الآن لشرحها .

تم تعديل هذه المشاركة بواسطة imadouzoun في 30 سبتمبر 2007 في 20:13

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#10

فهمت انك تنشيء رقم الفاتوره في الابليكاشن وترسله الى الداتابيز ولذلك تظهر لك مشكلة التكرارفإذا كنت تريد فعل ذلك فيمكنك بالفعل ان تجعل رقم الفاتوره يبدأ او ينتهى برقم المستخدم او الآي دي الخاص به في الداتابيز وبذلك يمكنك تلاشي حدوث التكرارأما اذا كان رقم الفاتوره ينشأ داخل الداتابيز كحقل تلقائي مثلا default فلن تظهر مشكلة التكرار تمام وهذا ما أفضله

والسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة D.F. في 30 سبتمبر 2007 في 20:52

MCSD

#C

#11

و إن شئت استخدام رقم الفاتورة من اجل حشر تفاصيلها يمكنك أن تجعل الإجرائية المخزنة المسؤولة عن حشر الفاتورة تعيد لك

رقم الفاتورة الذي تم توليده لك عن طريق بارامترات الخرج Output Parameters ..

لتستخدمه في حشر تفاصيل الفاتورة .

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#12

أنا عندي استفسار اريد التأكد منه قبل الشروع في تصميم قاعدة البيانات

*** أنا اتكلم هنا عن توليد رقم فاتورة جديدة

وليس عن تعديل سجل معين من قبل اكثر من مستخدم

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

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

لو صادف 6 مستخدمين قاموا بنفس الوقت بطلب عمل فاتورة جديدة !!!

أنا راح أخذ رأي اخواني الذين قاموا بالرد على سؤالي ( ولهم جزيل الشكر مني )

الأخ TareqVB يقول:

* هذا الكلام يعتمد على طريقة برمجتك لكن بشكل عام اذا كنت تستخدم الدالة Max للحصول على اخر فاتورة سيأخذ الجميع نفس الرقم لكن في النهاية واحد سينجح في التخزين والبقية سيظهر عندهم خطأ .

أخ طارق هذا تسلسل خطوات برنامجي

1- استخدم الداله Max في تطبيقvb.net للحصول على اكبر رقم فاتورة

2- اقوم باضافة عليه رقم ( 1 ) وبذلك يتكون لي رقم فاتورة جديدة

3- ثم اقوم بحفظة في قاعدة البيانات

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

لو قمنا بتعديل تسلسل الخطوات السابقة الى التالي

1- استخدم الداله Max في تطبيقvb.net للحصول على اكبر رقم فاتورة

2- اقوم باضافة عليه رقم ( 1 ) وبذلك يتكون لي رقم فاتورة جديدة

3- ابحث في قاعدة البيانات عن رقم الفاتورة الجديدة هل هو موجود ( هل حصل عليه احد المستخدمين السته )

اذا كان موجود ارجع الى الخطوة رقم 1 واذا لم يكن موجود انتقل الى الخطوة رقم 4

3- ثم اقوم بحفظة في قاعدة البيانات

هل سيفي ذلك بالغرض واتغلب على المشكلة نهائيا

الأخ imadouzoum يقول:

* الإجابة الدقيقة على هذا السؤال هي :

أن SQL Server ينفذ التعليمات T-SQL دائماً و أبداً على التسلسل حتى لو جاءت تلك التعليمات إلى السيرفر من عدة مستخدمين في نفس اللحظة

يا صاحبي قلت لك لا مشكلة في كون الطلبات تأتي إلى SQL Server في نفس اللحظة ..

لذا فإن احتمال الخطأ الذي تتحدث عنه غير وارد الحدوث على الإطلاق !!!

خصوصاً إذا كان رقم الفاتورة Identity يعني ترقيم تلقائي أو ما شابه من طرق ترقيم .

صدقني أنا جربت تجربة تثبت 100% ما أقول لك .. و سأعطيك إياه إن شئت .. لكن لا وقت الآن لشرحها .

انا معاك أخي imadouzoum في كلامك برنامج SQL-Server راح ينفذ جميع عمليات

الـ Transactions بالتسلسل هذا الموضوع مافيه جدال.

بس انا متخوف من أن الدوال اللي عملتها بواسطة vb.net لتكوين رقم فاتورة جديدة تعطي

اكثر من مستخدم نفس رقم الفاتورة وعندما يصلون الى قاعدة البيانات لحفظ رقم الفاتورة

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

هل توافقني الرأي أن كلام الأخ TareqVB قد يكون صحيح

الأخ .D.F يقول:

* فهمت انك تنشيء رقم الفاتوره في الابليكاشن وترسله الى الداتابيز ولذلك تظهر لك مشكلة التكرارفإذا كنت تريد فعل ذلك فيمكنك بالفعل ان تجعل رقم الفاتوره يبدأ او ينتهى برقم المستخدم او الآي دي الخاص به في الداتابيز وبذلك يمكنك تلاشي حدوث التكرارأما اذا كان رقم الفاتوره ينشأ داخل الداتابيز كحقل تلقائي مثلا default فلن تظهر مشكلة التكرار تمام وهذا ما أفضله

كلامك صحيح أخي .D.F

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

ياليت تشرح أكثر وتوضح الفكرة

لأني اعتقد والله أعلم أن حقل رقم الفاتورة و ID المستخدم اذا كانوا من نوع int او bigint او رقم بشكل عام انه ستتتولد لك ارقام فواتير مكررة على المدى البعيد

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

فكرتك الأخيرة قد تكون رائعة و مثالية لكن هل جربتها؟

الأخ imadouzoun يقول

* و إن شئت استخدام رقم الفاتورة من اجل حشر تفاصيلها يمكنك أن تجعل الإجرائية المخزنة المسؤولة عن حشر الفاتورة تعيد لك

رقم الفاتورة الذي تم توليده لك عن طريق بارامترات الخرج Output Parameters

ياليت تفصل أكثر ؟

كان في بالي تصميمين قديمين لقاعدة البيانات متعددة المستخدمين

لكن مشكلة تعدد المستخدمين أرقتني كثيرا

واحترت كثيرا اي تصميم ابدأ فيه

1- التصميم الأول

في هذا التصميم تلاحظون الفروع و المستخدمين و الفواتير كل منها يتسلسل في الترقيم

طبعا انا اعتمدت على دالة Max لتوليد رقم الفواتير وبذلك تشاهدون تسلسل الفواتير وترتيبها

-

/index.ph...st&id=52804

2- التصميم الثاني

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

لاحظوا يمكن تكون نفس فكرة الأخ .D.F

لاحظ ارقام المستخدمين تكون U1 و U2 وهكذا

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

لاحظ كل مستخدم له تسلسل خاص به في ارقام الفواتير وبكذا امنع حدوث أي مشاكل التكرار

-

/index.ph...st&id=52803

سؤالي هل يمكن استخدام دالة Max والدوال التجميعية مع حقل رقم الفاتورة من نوع Char

كما في الصورة اعلاه ؟؟؟

اريد تعطوني رأيكم في التصميمين وأيهما يناسب بيئة متعددة المستخدمين.

بالتوفيق للجميع

تم تعديل هذه المشاركة بواسطة Munir في 1 أكتوبر 2007 في 13:47

#13

أنظر كيف أحل مثل هذه المشكلة عادة :

لنفترض الجدول التالي :

Create Table Orders(OrderNum BigInt Identity, UserOrder SysName Default suser_sname(), OrderDate DateTime )
GO

وهذه الإجرائية المسؤولة عن حشر الفواتير :

Create Proc Order_Insert( 
	@OrderDate DateTime,
	@OrderNum BigInt = Null Output
)
AS

Insert Orders(OrderDate) Values(@OrderDate)
Select @OrderNum = Max(OrderNum) From Orders Where UserOrder = suser_sname()

GO

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

Declare @OrderNum BigInt
Exec Order_Insert @OrderDate = '5/5/2004', @OrderNum = @OrderNum Output
print @OrderNum

تم تعديل هذه المشاركة بواسطة imadouzoun في 1 أكتوبر 2007 في 14:59

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#14

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

وبه نستعين

اقتباس
أما اذا كان رقم الفاتوره ينشأ داخل الداتابيز كحقل تلقائي مثلا default فلن تظهر مشكلة التكرار تمام وهذا ما أفضله

للأسف انا كنت اقصد identity وليس default ولا أدري ان كنت فهمت ما اقصده او لا

فعندما تنشأ جدول الفواتير اجعل ال primary key هو رقم الفاتوره واجعله identity أي ان له رقم ابتدائي ويزيد تلقائيا

CREATE TABLE   invoice_no (
invoice_no  int IDENTITY (0, 1) NOT NULL PRIMARY KEY 
)

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

والسلام عليكم

تم تعديل هذه المشاركة بواسطة D.F. في 1 أكتوبر 2007 في 21:44

MCSD

#C

#15

ان امكنك استخدام الترقيم التلقائي فاعتقد انه لن يحدث هناك اي تعارض لكن قد تكون هناك مشكلة وجود فجوات بين الارقام فاذا لم تكن هذه الفجوات مهمة بالنسبة لك خاصة انك تتكلم عن فواتير فالترقيم التلقائي هو افضل حل كما شرحه الاخ عماد و D.F

(واقصد بالفجوات مثل 1 2 3 5 6 .....) اي الرقم 4 لم تأخذه اي فاتورة

#16

هذه الروابط

شوفوا التصاميم واريد رأيكم

ولو في اي مشاكل في اي تصميم ياليت حلولوكم

الرابط _______.zip

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…