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

استرجاع مجموعه صور مخزنة بجدول موجود بسيفر sql

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

انا اسف بس انا عندى سؤال محيرنى وبقالى يومين ابحث عن حل فى النت وللاسف لم اجد له حل

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

#2

ممكن تكتب شيفرة بأي لغة برمجة مثل C#, VB.NET لإتمام ماتريد بكل سهولة إلا إن كنت تريد مشروعك Access هو من سيقوم بهذه المهمة, عندها أعتقد أنه عليك استخدام VBA التي تأتي مع Access.

أرجو أن أكون فهمت سؤالك بشكل صحيح

#3

عزيزى اسماعيل انا شاكر لك جدا محاولة مساعدتى ولكن للاسف انا لاعرف الدوت نيت وحاولت اكتب كود vba بس فشلت لان الصور متخزنه فى الجدل بصيغتين الاول Microsoft word picture والاخرى Microsoft office picture السؤال هل يمكن كتابه كود عن طريق السيرفر ال sql لحل المشكله انا قريت انه ممكن بس مش عارف ازاى

كل المطلوب معرفة الامر المستخدم ... انا مش عايز الكود بالكامل .... سواء كانت الطريقة بواسطة vba او sql

#4

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

أخي الكريم . إليك كود سيساعدك في حل مشكلتك إن شاء الله ..

وهو عبارة عن إجرائية مخزنة تقرأ الصورة على شكل بايتات و تقوم بتخزينها في ملف صورة ..

أنا قد وضعته سابقاً في درس حول التعامل مع أنواع البيانات الضخمة (Image , NText, Text)

و هو موجود في أرشيف القسم على ما أعتقد ..

CREATE PROCEDURE SaveImage2file @filename nvarchar(128), @table nvarchar(128),@column nvarchar(128), @where nvarchar(4000)
--Saves an image from an image column to a file
AS
IF (@filename is NULL) OR (@table is NULL) OR (@column is NULL) OR (@where is NULL)
	BEGIN
	PRINT 'saveImage2file saves an image from an image column to a file'
	PRINT 'Usage:'
	PRINT 'EXEC saveImage2file FileName, tableName, columnName, WhereCondition'
	PRINT ''
	PRINT 'For example: EXEC saveImage2file ''C:\test.bmp'', ''customers'', ''picture'', ''where customerID=234'''
	RETURN
	END
DECLARE @hr int,@fso int,@i int, @j int, @blocks int, @c int, @v varbinary(10), @buffer varbinary(1000), @sql nvarchar(4000)
EXEC @hr = sp_OACreate 'ADODB.Stream', @fso OUT
exec @hr = sp_oasetproperty @fso, 'Type', 1--adTypeBinary=1
EXEC @hr = sp_OAMethod @fso, 'Open'
set @sql = N'SELECT @c =(select DATALENGTH('+@column+') from '+@table+' '+@where+')'
exec sp_executesql @sql, N'@c int OUTPUT', @c OUTPUT
set @j=0
create table #t ( t image ) 
SET @i=@c
--read 1000 bytes at a time
WHILE @i>1000
	BEGIN
	insert into #t 
	exec getREADTEXT @column,@table,@where,@j,1000
	set @buffer=(select convert(varbinary(1000),t) from #t)
	EXEC @hr = sp_oasetproperty @fso, 'Write', @buffer
	delete #t
	SET @i=@i-1000
	SET @j=@j+1000
	END
--read remaining bytes
if @i>0
	BEGIN
	insert into #t 
	exec getREADTEXT @column,@table,@where,@j,@i
	set @buffer=(select convert(varbinary(1000),t) from #t)
	EXEC @hr = sp_oasetproperty @fso, 'Write', @buffer
	delete #t	
	END
drop table #t
EXEC @hr = sp_oasetproperty @fso, 'SaveToFile', @filename
EXEC @hr = sp_OAMethod @fso, 'Close'
GO

مثال على استخدام الدالة :

EXEC saveImage2file 'C:\test.bmp', 'customers', 'picture', 'where customerID=234'

بالتوفيق ...

تم تعديل هذه المشاركة بواسطة imadouzoun في 15 أبريل 2007 في 12:33

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة 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

السلام عليكم

الف الف شكر على المساعدة وجارى التجربة بأذن الله

وشكرا لك مرة اخرى

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

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