تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تنظيم ارفاق المستندات في قاعدة البيانات Sql واحضار الملفات حسب قيمة البحث
#1
اخواني الاعزاء
 اسعد الله اوقاتكم بكل خير واتمنى ان تكونوا جميعا في اتم صحه وعافيه
لدى قاعده البيانات التاليه والتي تتكون من الحقول كما في الصورة التالية:
   
والمراد منها عمل حفظ لمستندات ومرفقات ووثائق الموظفين ولكن واجه مشكله في حفظ المستند واعاده قراءته من قاعده البيانات حيث يتم حفظ المرفق بجانب ملف التشغيل والمطلوب ان يتم الحفظ في ملف خاص ولا يمكن قراءه المستندات الا عن طريق اعاده فتحه من خلال البرنامج.


المشكله الاخرى تكمن في حال تم عمل فلتر او بحث برقم الموظف "EmployeID" في Data grid view
لا يتم احضار الملفات والمرفقات التي تخص الرقم الوظيفي للموظف بل يتم عرض أول المرفقات

كود :
USE [Test_System]
GO

/****** Object:  Table [dbo].[Tbl_doc]    Script Date: 06/Sep/2020 12:27:45 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Tbl_doc](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Employe] [int] NULL,
    [Filestatus] [nvarchar](50) NULL,
    [Extension] [nvarchar](50) NULL,
    [FileName] [nvarchar](50) NULL,
    [Attached] [varbinary](max) NULL,
    [Remarks] [nvarchar](255) NULL,
CONSTRAINT [PK_Tbl_doc] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة:
#2
(06-09-20, 01:28 AM)محمد العامر كتب : اخواني الاعزاء
 اسعد الله اوقاتكم بكل خير واتمنى ان تكونوا جميعا في اتم صحه وعافيه
لدى قاعده البيانات التاليه والتي تتكون من الحقول كما في الصورة التالية:


والمراد منها عمل حفظ لمستندات ومرفقات ووثائق الموظفين ولكن واجه مشكله في حفظ المستند واعاده قراءته من قاعده البيانات حيث يتم حفظ المرفق بجانب ملف التشغيل والمطلوب ان يتم الحفظ في ملف خاص ولا يمكن قراءه المستندات الا عن طريق اعاده فتحه من خلال البرنامج.


المشكله الاخرى تكمن في حال تم عمل فلتر او بحث برقم الموظف "EmployeID" في Data grid view
لا يتم احضار الملفات والمرفقات التي تخص الرقم الوظيفي للموظف بل يتم عرض أول المرفقات

كود :
USE [Test_System]
GO

/****** Object:  Table [dbo].[Tbl_doc]    Script Date: 06/Sep/2020 12:27:45 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Tbl_doc](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Employe] [int] NULL,
    [Filestatus] [nvarchar](50) NULL,
    [Extension] [nvarchar](50) NULL,
    [FileName] [nvarchar](50) NULL,
    [Attached] [varbinary](max) NULL,
    [Remarks] [nvarchar](255) NULL,
CONSTRAINT [PK_Tbl_doc] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

الطريقة الصحيحة هي أن يكون هناك جدول للمرفقات يكون فيها الحقول الأساسية التالية:
كود :
ID        INT IDENTITY(1,1) PRIMARY KEY
Emp_ID    INT
Filename  NVarChar(255)
Attached  VARBINARY(MAX)
ويمكن إضافة التالي
كود :
Remarks   NVarChar(255)

وجدول الموظفين يكون عادي بدون مرفقات
ثم تربط بين جدول المرفقات العمود Emp_ID مع جدول الموظفين العمود ID


وعند إضافة مرفقات تضيف المرفق في جدول المرفقات بحيث يكون رقم Emp_ID بنفس رقم ID الخاص بالموظف المراد تسجيل المرفق له

وسيكون هناك رد آخر لكيفية الاستعلام لجميع مرفقات موظف
الرد
تم الشكر بواسطة: محمد العامر , حريف برمجة , WaeLx
#3
نعم اخي هذا يعتبر جدول خاص بالملفات فقط منفصل عن بيانات الموظفين
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة: حريف برمجة
#4
كيف طريقتك في الاستعلام مع وضع كود الاستعلام
لان هناك عدة طرق للتعامل مع البيانات

ولو تضع مشروع يكون أفضل لسرعة تلبية طلبك
الرد
تم الشكر بواسطة: حريف برمجة , حريف برمجة , WaeLx , WaeLx
#5
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = EemployeID )", ConSql)

هذا كود الاستعلام
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة: حريف برمجة , WaeLx , WaeLx
#6
(06-09-20, 03:29 PM)محمد العامر كتب :
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = EemployeID )", ConSql)

هذا كود الاستعلام

من مشاهدة الاستعلام يبدو سليما باستثناء عدم وضعك علامة @ قبل اسم الباراميتر EemployeID
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = @EemployeID )", ConSql)

يبقى كيفية عرض المرفقات

إذا أردت حل سريع ضع مشروع
أو راسلني على الخاص إن كان لا يمكنك وضع المشروع للجميع

مع توضيح ماذا تقصد بـ (الحفظ في ملف خاص)
الرد
تم الشكر بواسطة: حريف برمجة , حريف برمجة , WaeLx
#7
جزاك الله كل خير

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

كود :
CREATE TABLE [dbo].[TB_AllEemplooyeJed](
    [Sril] [int] IDENTITY(1,1) NOT NULL,
    [EemployeID] [int] NOT NULL,
    [EemployeName] [nvarchar](255) NULL,
CONSTRAINT [PK_TB_AllEemplooyeJed] PRIMARY KEY CLUSTERED
(
    [Sril] ASC,
    [EemployeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

وهذا سكربت جدول الملفات 

كود :
CREATE TABLE [dbo].[TB_File](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [FileName] [nvarchar](50) NOT NULL,
    [FileExt] [nvarchar](50) NOT NULL,
    [Attachment] [varbinary](max) NOT NULL,
CONSTRAINT [PK_TB_File] PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة: حريف برمجة , WaeLx
#8
(06-09-20, 04:18 PM)محمد العامر كتب : جزاك الله كل خير

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

كود :
CREATE TABLE [dbo].[TB_AllEemplooyeJed](
    [Sril] [int] IDENTITY(1,1) NOT NULL,
    [EemployeID] [int] NOT NULL,
    [EemployeName] [nvarchar](255) NULL,
CONSTRAINT [PK_TB_AllEemplooyeJed] PRIMARY KEY CLUSTERED
(
    [Sril] ASC,
    [EemployeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

وهذا سكربت جدول الملفات 

كود :
CREATE TABLE [dbo].[TB_File](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [FileName] [nvarchar](50) NOT NULL,
    [FileExt] [nvarchar](50) NOT NULL,
    [Attachment] [varbinary](max) NOT NULL,
CONSTRAINT [PK_TB_File] PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

الجدول TB_File لا يوجد فيه عمود رقم الموظف EemployeID
في حين أن الاستعلام الذي وضعته أشار لذلك TB_File.EemployeID
هناك عدم تطابق لما تضعه


أيضا لم ترد على مشاركتي السابقة
الرد
تم الشكر بواسطة: حريف برمجة , حريف برمجة , WaeLx
#9
(06-09-20, 03:46 PM)L35 كتب :
(06-09-20, 03:29 PM)محمد العامر كتب :
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = EemployeID )", ConSql)

هذا كود الاستعلام

من مشاهدة الاستعلام يبدو سليما باستثناء عدم وضعك علامة @ قبل اسم الباراميتر EemployeID
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = @EemployeID )", ConSql)

يبقى كيفية عرض المرفقات

إذا أردت حل سريع ضع مشروع
أو راسلني على الخاص إن كان لا يمكنك وضع المشروع للجميع

مع توضيح ماذا تقصد بـ (الحفظ في ملف خاص)

اشكرك على رحابة صدرك كتب الله اجرك يا أخي
القصد بحفظ الملفات التي يتم أرفاقه في قاعدة بملف خاص أي أنه في حال تم حفظ الملف كنوع من التنظيم يتم حفظه في ملف داخل \Debug عكس ما يتم في الملف المرفق
http://vb4arb.com/vb/showthread.php?tid=28906
هذا ما أقدصه

كود :
CREATE TABLE [dbo].[TB_File](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [EemployeID] [int] NOT NULL,
    [FileName] [nvarchar](50) NULL,
    [FileExt] [nvarchar](50) NULL,
    [Attachment] [varbinary](max) NULL,
CONSTRAINT [PK_TB_File] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد
تم الشكر بواسطة: حريف برمجة , حريف برمجة , WaeLx
#10
(06-09-20, 04:43 PM)محمد العامر كتب :
(06-09-20, 03:46 PM)L35 كتب :
(06-09-20, 03:29 PM)محمد العامر كتب :
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = EemployeID )", ConSql)

هذا كود الاستعلام

من مشاهدة الاستعلام يبدو سليما باستثناء عدم وضعك علامة @ قبل اسم الباراميتر EemployeID
كود :
SELECT TB_AllEemplooyeJed.EemployeID, TB_AllEemplooyeJed.EemployeName, TB_File.ID, TB_File.FileName, TB_File.FileExt, TB_File.Attachment, TB_File.Statuss, TB_File.EemployeID AS Expr1
FROM     TB_AllEemplooyeJed RIGHT OUTER JOIN
                 TB_File ON TB_AllEemplooyeJed.EemployeID = TB_File.EemployeID
WHERE  (TB_AllEemplooyeJed.EemployeID = @EemployeID )", ConSql)

يبقى كيفية عرض المرفقات

إذا أردت حل سريع ضع مشروع
أو راسلني على الخاص إن كان لا يمكنك وضع المشروع للجميع

مع توضيح ماذا تقصد بـ (الحفظ في ملف خاص)

اشكرك على رحابة صدرك كتب الله اجرك يا أخي
القصد بحفظ الملفات التي يتم أرفاقه في قاعدة بملف خاص أي أنه في حال تم حفظ الملف كنوع من التنظيم يتم حفظه في ملف داخل \Debug عكس ما يتم في الملف المرفق
http://vb4arb.com/vb/showthread.php?tid=28906
هذا ما أقدصه

كود :
CREATE TABLE [dbo].[TB_File](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [EemployeID] [int] NOT NULL,
    [FileName] [nvarchar](50) NULL,
    [FileExt] [nvarchar](50) NULL,
    [Attachment] [varbinary](max) NULL,
CONSTRAINT [PK_TB_File] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO


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

.rar   WindowsApplication1.rar (الحجم : 153.64 ك ب / التحميلات : 26)
الرد


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرفة أكبر قيمة للتاريخ الموجودة في الداتاقريدفيو جيولوجي مبتدئ 5 92 منذ 4 ساعة مضت
آخر رد: ابراهيم ايبو
  نموذج عرض السيرفرات وطريقة الاتصال وقاعدة البيانات Mohammed Nafa 5 175 15-05-21, 03:51 AM
آخر رد: asemshahen5
  تثبيت قاعدة بيانات SQL على جهاز العميل Owz 6 582 13-05-21, 08:46 PM
آخر رد: ابو انس
Exclamation [VB.NET] فكرة برمجية لنقل أسطر قاعدة البيانات بشكل مستمر sniperjawadino 2 179 13-05-21, 08:32 PM
آخر رد: sniperjawadino
  [VB.NET] اريد عرض اسماء الجداول من قاعدة البيانات سكوال سيرفرس alsaab120 2 156 07-05-21, 01:45 AM
آخر رد: alsaab120
  اخر قيمة حقل معين باستخدام شرط معين asdfar1977 1 151 04-05-21, 06:28 AM
آخر رد: أسعد
  عرض البيانات داخل التاتا جرد فيو بطريقة جداول متداخلة moahmed.abdelmohsen 6 304 30-04-21, 05:17 PM
آخر رد: mrfenix93
  المساعده في عرض البيانات moahmed.abdelmohsen 4 243 30-04-21, 03:11 PM
آخر رد: ابو انس
  العمل على قاعدة بيانات أونلاين وأوفلاين بنفس الوقت بشار نصري 1 258 29-04-21, 04:40 PM
آخر رد: mrfenix93
  [VB.NET] مطلوب كود يختص بحفظ البيانات Ayat.B.H 1 149 28-04-21, 07:45 AM
آخر رد: messry

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم