PDA

View Full Version : نمایش فیلدهای Ntext در برنامه



حمیدرضاصادقیان
دوشنبه 29 بهمن 1386, 10:54 صبح
سلام دوستان.میخواستم ببینم چطور میتونم محتویات فیلدهای ntext رو مثلا در یک memo بریزم.درحالت عادی چیزی به من نشون نمیده. یا چطور میتونم به یک دیتابیس دیگه انتقال بدم.

vcldeveloper
دوشنبه 29 بهمن 1386, 12:36 عصر
فیلد ntext رو باید بتونید با DBMemo نمایش بدید. دقت کنید که محتوی همچین فیلدی یونیکد هست و با کنترل های عادی دلفی که از string برای نگه داری متن استفاده می کنند، میانه خوبی نداره.

حمیدرضاصادقیان
دوشنبه 29 بهمن 1386, 13:41 عصر
ممنون آقای کشاورز عزیز.راستش من یک دیتابیس داشتم که 3 گیگابایت ظرفیت داره و دچار مشکل شده.من اونو به emergency mode بردم و دیتای جداولش رو بیرون کشیدم.یک جدولش که حجمش هم 3 گیگابایت هست یک فیلد ntext داره که فایلهای jpg رو در خودش نگه داری میکنه.من با روشی که در کتاب mastering delphi7 بود برای نمایش فیلدهای Blob از هر کدوم از اون روشها استفاده کردم فقط هدر فایل jpeg رو برام نشان میداد.
من هم فکر کردم که محتویات داخلش به مشکل برخورده.از طریق dts خود sql که اونو انتقال دادم درست انتقال داده شد.ولی همچنان من نتونستم کاری کنم بتونم اون عکسها رو ببینم.

hr110
دوشنبه 29 بهمن 1386, 13:56 عصر
با روش زیر میتونید اونو در فایل ذخیره کنید(احتمالاً خودتون هم اطلاع داشته باشید):
TBlobField(adoTable1.Fields[2]).SaveToFile('c:\1.jpg');
و با این روش ساده میتونید مقدار فیلد رو به یک Stream منتقل و در یک TImage ساده نمایش بدهید.

حمیدرضاصادقیان
دوشنبه 29 بهمن 1386, 14:35 عصر
ممنون استاد ربیعی.من اینکارو انجام دادم ولی مشکل اینه که در فایلی که ایجاد میکنه فقط هدر فایل jpeg رو ذخیره میکنه.یعنی فقط مقدار FFD8 داخل اون وجو داره.ولی با این اوصاف وقتی با dts اونو به یک دیتابیس دیگه انتقال دادم از 340 ردیف 150 ردیف اون انتقال پیدا کرد که همین باعث شد حجم جدولم به 700 مگابایت برسه.من تعجبم چرا داخل برنامه هچ جوری نمی تونم تونو ببینم.
نهایتا یک ردیف اونو داخل جدول میذارم و فایلش رو اینجا قرار میدم تا دوستان نظر بدن.

حمیدرضاصادقیان
دوشنبه 29 بهمن 1386, 14:53 عصر
اینم نمونه دیتابیس با یک جدول و یک رکورد.

حمیدرضاصادقیان
چهارشنبه 01 اسفند 1386, 19:32 عصر
دوستان کسی نیست منو کمک کنه؟

hr110
شنبه 04 اسفند 1386, 13:04 عصر
جناب صادقیان شرمنده من تازه دیدمش،
من این بانک اطلاعاتی شما رو برگرداندم و همانطور که شما نیز تست کردید در اسکیوال امکان پذیر نبود، چرا که این فیلد باید باینری یا IMGAE تعریف میشده!

ولی اطلاعات شما رو در اکسس وارد کرده و نوع فیلد را به ole تبدیل کردم و توانستم در دو فایل ذخیره کنم، فایل اول یونیکد ذخیره شد که با حذف کاراکتر دوم فایل دوم ایجاد شد.

فرمت و نوع اطلاعات شما برای من قابل تشخیص نبود بنابراین صحت کار را خودتان تست کنید.


http://rapidshare.com/files/94184665/1.rar.html