با سلام
ظاهرا آقای کرامتی 2 مقاله در مورد DbIsam نوشته اند که من هر چه جستجو کردم چیزی نیافتم.
دوستانی که این مقالات رو دارند اگه یه محبتی کنن این مقالات رو در اختیار حقیر قرار بدن ممنون میشم.
Printable View
با سلام
ظاهرا آقای کرامتی 2 مقاله در مورد DbIsam نوشته اند که من هر چه جستجو کردم چیزی نیافتم.
دوستانی که این مقالات رو دارند اگه یه محبتی کنن این مقالات رو در اختیار حقیر قرار بدن ممنون میشم.
در این مقاله میخواهیم شما را با DBISAM ، پدیده دنیای بانکهای اطلاعاتی آشنا کنیم. یک راست و بدون مقدمه میرویم سر اصل مطلب. این لیست قابلیتهای این Database Engine است:
پشتیبانی کامل 100 زبان بین المللی ( از جمله فارسی و انگلیسی )
پشتیبانی تاریخ هجری شمسی
ایندکس و سورت صحیح فارسی
تنظیمات خاصی برای استفاده بصورت Client/Server نیاز نیست .
بازده استثنایی وبهینه سازی Filtering وSQL .
امکانات بازسازی و تعمیر درون ساخت .
امکان تبدیل فرمت تمام انواع Database به فرمت DBISAM .
دارای برنامه کمکی ویژه جهت Browse ،Restructure ، Update وجستجوی Database
پشتیبانی کامل Blob ،شامل block size قابل تنظیم بصورت دلخواه
Buffered Transaction جهت حفاظت دادهها هنگام قطع برق و امثال آن
ایندکس های Primary و Secondary
پشتیبانی کامل Filter
فایلهای داده in-memory با پشتیبانی Streaming
جستجوی در ایندکس با استفاده از علامتهای (* ، ؟)
تعیین محدوده (بازه) با تعداد دقیق رکوردها
پشتیبانی فیلد Auto-Increment
اعداد منطقی ترتیبی
پشتیبانی کامل NULL
Min/Max وبررسی Validity
مقادیر پیش فرض
فشرده سازی کلیدها وایندکسها
فشرده سازی اتوماتیک ایندکسها
پشتیبانی Database های read-only برروی CD-ROM
پشتیبانی کامل BCD
ایندکسهای Case-Insensitive
حفاظت از داده ها با Password-Encryption
ایندکسهای ثانویه Unique
امکان تعریف Version Numbering فایلهای داده توسط کاربر
DBISAM اصلا چیست؟
DBISAM یک موتور Database مانند BDE ، SQL Server و Interbase است، با امکانات خارقالعاده.
عدم نیاز به هیچگونه Driver یا DLL برای اجرای برنامه
جالب است نه؟ یعنی برنامه شما برای اجرا به هیچگونه درایور یا DLL ای نیاز ندارد، چرا که تمام موتور Database و ملحقات آن مستقیما به درون فایل Exe شما کامپایل میشود. حجمی هم که به فایل شما اضافه میشود مقداری جزئی و قابل چشم پوشی است.
این در حالی است که BDE برای باز کردن یک فایل ساده Paradox به مجموعهای از درایورها نیاز دارد و برنامه شما در صورت عدم حضور آنها با نمایش یک Exception با یک دردسر اساسی روبرو خواهد شد.
استفاده از DBISAM بعنوان یک جایگزین برای BDE
اکثر برنامه نویسانی که با BDE کار کرده اند با مشکلات آن به خوبی آشنا هستند: خراب شدن ایندکسها ، خراب شدن فایلهای داده در صورت قطع برق ، مشکل User Lock و ...
اینها همه مشکلاتی است که در DBISAM حل شده است .
تبدیل برنامه Desktop به Client/Server
هنگامی که از یک برنامهنویس خواسته میشود تا برنامهای که با BDE نوشته است را تبدیل به نسخه Client/Server کند کابوس او شروع میشود، زیرا باید اکثر بخشهای برنامهاش را باز نویسی کند .
اما با استفاده ازDBISAM این کار به آسانی مقداردهی یک مشخصه در کامپونت Session است:
Session Type := StRemote;
بله به همین سادگی است! یعنی با صرف زمانی کمتر از چند دقیقه میتوانید هم سرور DBISAMرا نصب و راه اندازی کنید و هم برنامهتان را تبدیل به نسخه Client /Server کنید. هیجان انگیز است! نه ؟
نصب Database Server در کمتر از چند دقیقه!
اگر تا کنون Database Engine های دیگر مانند SQL Server و امثال آن را نصب کرده باشید حتما میدانید که عملیات نصب و پیکربندی آنها نزدیک به یکساعت وقت میگیرد، البته بشرطی که تجربه لازم در نصب و پیکربندی آنها را داشته باشید، در غیر اینصورت باید ساعتها وقت را نیز برای یادگیری موارد فوق کنید، این درحالی است که میتوانستید چنین وقتی را صرف رسیدن به امور مهمتری مانند رسیدگی به برنامه خود کنید.
اما نصب Database Server این سیستم در 1 دقیقه نیز ممکن است!!! چگونه؟ با طی مراحل فوق:
انتخاب کامپیوتری که قرار است نقش Database Server را بعهده بگیرد.
انجام تغییرات لازم در فایل .INI مربوطه (از جمله مشخص کردن IP Address سرور، ... ).
اجرای Database Server (که یک فایل Exe بیش نیست!).
قابلیت اجرای برنامه ها در حالت Read-Only
فرض کنید میخواهید برنامهای بنویسید که حاوی یکسری داده باشد (مانند دیکشنری، برنامه های مالتیمدیا، دایرةالمعارف ، و ...) ونیز برنامه شما قرار است در یک محیط Read-Only (مثلا از روی CD یا DVD) اجرا شود . دراین حالتDBISAM بشما اجازه میدهد بدون هیچگونه تغییری در کد برنامه، آنرا به محیط مقصد (CD ، DVD) منتقل کنید و بدون نیاز به انجام هیچ تغییر خاصی آنرا اجرا کنید.
پشتیبانی زبان فارسی
DBISAM اولین Database Engine ای است که زبان Farsi را هم تحویل گرفته و آ نرا پشتیبانی میکند، شما هنگام طراحی جداول میتوانید زبان جدول را بر روی "Farsi" قرار دهید (شکل 1).
در اینصورت اگر روی یکی از فیلد های حاوی حروف فارسی ایندکس تعریف کنید خواهید دید که عبارات شما بر اساس ترتیب حروف فارسی مرتب خواهند شد(شکل 2).
شکل 1- پشتیبانی زبان فارسی توسط DBISAM
شکل 2- سورت صحیح عبارات فارسی بر اساس ترتیب الفبای فارسی
پشتیبانی تاریخ هجری شمسی
حرفهایهای Database میدانند که اکثر Database Engine های موجود محدوده تاریخ شمسی را بعنوان بازه صحیح قبول ندارند و اجازه ذخیره شدن آن در جداول با فیلد Date را نمیدهند، اما DBISAM از این قاعده پیروی نمیکند. یعنی شما میتوانید در یک فیلد از نوعDate در جداول DBISAM تاریخی مانند 10/5/1382 را بدون هیچ مشکلی ذخیره کنید .
امکان Partial Search برروی فیلدهای فارسی
در DBISAM امکان جستجو با استفاده از علائم * و ؟ بر روی فیلد های فارسی نیز وجود دارد.
بدین ترتیب شما می توانید بعنوان مثال با استفاده از عبارت *محمد* در ترکیب جستجو کلیه موارد شبیه به کلمه فوق ( مانند "محمد رضا"، "محمدی") را پیدا کنید .
بهینهسازی فیلدهای Image
هنگامی که میخواهید تصاویر را در جداول DBISAM نگهداری کنید ، سیستم بصورت اتوماتیک آنها را فشرده و بهینهسازی میکند تا فضای کمتری برای نگهداری آنها موردنیاز باشد و نیز سرعت خواندن و نوشتن آنها در سیستم افزایش یابد .
امکان بازسازی و تعمیر جداو ل
DBISAM دارای متدهای ویژه تعمیر و بازسازی database میباشد. با استفاده از این امکان برنامهنویس میتواند هر گاه که نیاز به تعمیر database دارد با اجرای متدی مانند Table1.Repair; جدول مورد نظر را تعمیر کند.
امکان تبدیل انواع database های دیگر به فرمت DBISAM
فرض کنید میخواهید جداول خود را از Interbase ، SQL Server و یا Paradox بهDBISAM تبدیل کنید. برای انجام این کار کافی است یک Alias به database مبدا تعریف و یا مسیر محتوی فایلها database مبدا را برای DBISAM Transfer Utility مشخص کنید . ظرف مدت کوتاهی ابزار فوق ساختار جداول و تمام دادههای درون آنها را به فرمت DBISAM تبدیل خواهد کرد.
دسترسی به Source Code کل سیستم!
هنگامی که شما نسخه کامل DBISAM را نصب میکنید سورس کلیه بخشهای سیستم آن مانند سورس Server ، سورس Component ها، سورس ابزارهای جانبی هم بهمراه سیستم اصلی نصب میشوند. بدین ترتیب علاوه بر تمام مزایای دیگر این سیستم، هرگاه نیاز به مطالعه نحوه کار یکی از بخشها، یا نیاز به ایجاد تغییر در یک بخش از سیستم یا ابزارهای جانبی آن داشتید میتوانید براحتی این کار را انجام دهید. نکته فوقالعاده این است که حتی کامپوننتهای استفاده شده برای ساختن ابزارهای کمکی DBISAM نیز بهمراه سورس کاملشان بهمراه DBISAM (در قالب یک tab بنام DBISAM Utilities) در محیط IDE دلفی نصب میشوند و شما بدون هیچگونه مشکلی میتوانید کل سیستم را هر وقت که نیاز داشتید re-compile کنید!
]اینم یواشکی بهتون بگم که کامپوننتهای موجود در DBISAM Utilities در حقیقت همان کامپوننتهای معروف InfoPower هستند که راست به چپ را نیز پشتیبانی میکنند! یادتون نره یه نگاهی هم به آنها بیاندازید[.
در مقالات بعدی این سری شما را با نحوه ایجاد برنامههای Desktop و Client/Server با استفاده از DBISAM آشنا خواهیم کرد.
آشنایی با DBISAM (بخش دوم): نوشتن یک برنامه Desktop
در این مقاله به بررسی نحوه ایجاد یک برنامه Desktop با استفاده از DBISAM و چگونگی در نظر گرفتن پیشنیازهای لازم برای تبدیل آن به یک برنامه Client/Server در آینده خواهیم پرداخت.
حالتهایی که بررسی خواهند شد عبارتند از:
A) برنامه قرار است در محیط تک کاربره اجرا شود.
B) برنامه طوری نوشته شود که امکان تبدیل به نسخه Client/Server در آینده در نظر گرفته شود.
A) برنامه قرار است در محیط تک کاربره اجرا شود:
در این حالت با استفاده از کامپوننت Table و Query ویژه DBISAM (بنامهای TDBISAMTable و TDBISAMQuery) و بدون انجام تنظیمات خاصی به جداول مربوطه متصل میشویم.
فرض کنید میخواهیم یک برنامه ساده ایجاد کنیم که در آن از یک جدول برای نگهداری مشخصات کاربران استفاده میشود. مراحلی که باید طی شوند عبارتند از:
ایجاد جداول مربوطه:
1) برنامه Database System Utility را اجرا کنید.
2) از منوی File گزینه New Table را انتخاب کنید. پنجره New Table باز خواهد شد (تصویر 1).
3) فیلدهای جدول را بصورت زیر تعریف کنید:
Primary Index
Required
Size
Data Type
Field Name
Yes
Yes
0
AutoInc
UserID
No
Yes
20
String
UserName
No
Yes
12
String
Password
No
No
0
Date
RegDate
جدول تمام شده مانند تصویر 2 خواهد بود:
4) اکنون از لیست Language گزینه Farsi را انتخاب کنید. اینکار باعث فعال شدن Sort و دیگر امکانات فارسی میشود (تصویر 3).
5) برای ذخیره جدول بر روی دکمه Save کلیک کنید.
6) در پنجره Save new table as گزینه Connection Type بصورت پیش فرض بر روی Local (Single/Multi User) قرار دارد و این همان چیزی است که ما اکنون میخواهیم.
7) در قسمت Available Databases بر روی دکمه Select کلیک کرده و مسیر مقصد را مشخص کنید.
8) در قسمت Save As نام فایل جدول را مشخص کنید (در اینجا ما UserInfo را وارد کردهایم). این پنجره پس از تکمیل شدن همه بخشها مانند تصویر 4 خواهد بود.
استفاده از جداول ایجاد شده در یک پروژه در دلفی:
اکنون که جداول موردنیاز آماده شدهاند وقت آنستکه از آنها در یک پروژه واقعی در دلفی استفاده کنیم. برای انجام اینکار مراحل زیر را طی کنید:
1) دلفی را اجرا کنید.
2) در Component Palette صفحه DBISAM را فعال کنید (تصویر 5).
3) یک کامپوننت TDBISAMTable بر روی فرمتان قرار دهید.
4) در Object Inspector مسیری که جداول را در آنجا ذخیره کردهاید را در مشخصه DatabaseName وارد کنید.
5) مقدار مشخصه TableName را از لیست انتخاب کنید (در اینجا UserInfo).
6) روی کامپوننت DBISAMTable1 بر روی فرم دابل کلیک کنید.
7) در پنجره Form1.DBISAMTable1 که باز شده است رایت کلیک و گزینه Add all fields را انتخاب کنید. اینکار باعث میشود فیلدهای جدول بصورت کامپوننتهای جداگانه در دسترس برنامه قرار گیرد (تصویر 6).
8) اکنون از صفحه Data Access در Component Palette یک کامپوننت TDataSource بر روی فرم قرار دهید.
9) مشخصه Dataset کامپوننت DataSource1 را بر روی DBISAMTable1 قرار دهید.
10) اکنون وقت وصل کردن این مجموعه به یک یا چند کامپوننت Data-Aware است. از صفحه Data Controls در Component Palette یک کامپوننت TDBGrid انتخاب کرده و بر روی فرم قرار دهید.
11) مشخصه DataSource کامپوننت DBGrid1 را بر روی DataSource1 قرار دهید.
12) مشخصه Active کامپوننت DBISAMTable1 را برابر True قرار دهید.
فرم تمام شده مانند تصویر 7 خواهد بود.
13) برنامه را اجرا کنید. اکنون میتوانید مانند برنامههای معمول نوشته شده با دلفی در DBGrid به افزودن، ویرایش و حذف دادهها بپردازید.
همانطورکه دیدید ایجاد یک برنامه بانک اطلاعاتی معمولی با DBISAM درست مانند ایجاد یک برنامه با استفاده از BDE است و تنها تفاوت آن استفاده از TDBISAMTable بجای TTable است. بطور کلی برای استفاده از DBISAM بجای BDE کافی است معادل کامپوننتهای BDE در DBISAM استفاده کنید.
B) برنامه طوری نوشته شود که امکان تبدیل به نسخه Client/Server در آینده در نظر گرفته شود:
برای تعبیه امکان تبدیل یک برنامه به نسخه Client/Server باید 2 کامپوننت TDBISAMSession و TDBISAMDatabase را به فرم برنامهتان اضافه کنید.
Session چیست؟
در برنامه نویسی بانکهای اطلاعاتی هر Session بمنزله یک کاربر میباشد. بعنوان مثال اگر قرار باشد 3 کاربر به یک سرور بانک اطلاعاتی (Database Server) متصل شوند این سرور 3 Session خواهد داشت.
کاربرد کامپوننت Database چیست؟
در برنامه نویسی بانکهای اطلاعاتی در دلفی هر کامپوننت Database نماینده یک Database واقعی است. یک Database واقعی معمولا یک فولدر یا دایرکتوری حاوی تعدادی جدول (Table) و فایلهای مرتبط با آنها میباشد.
کامپوننت Database بما کمک میکند تا تمام جداول مرتبط با هم را در قالب یک Database در پروژه گروهبندی کنیم. مزیت دیگر استفاده از کامپوننت Database اینستکه میتوان کلیه مشخصات یک Database واقعی (مسیر نگهداری جداول، ...) را در آن تنظیم کرده و در کامپوننتهای Table و Query بجای مشخص کردن مسیر محل نگهداری جداول برای هر کدام، فقط مشخصه DatabaseName آنها را برابر نام تعریف شده در کامپوننت Database قرار دهیم. بدین ترتیب با عوض کردن مقادیر در کامپوننت Database تمام Table ها و Query های متصل به آن نیز از تنظیمات آن پیروی خواهند کرد.
اکنون که با مفاهیم لازم آشنا شدید اقدام به انجام تغییرات در برنامهای که قبلا ایجاد نمودهایم میکنیم تا امکان تبدیل آن به نسخه Client/Server در آینده را به آن اضافه کنیم.
1) از صفحه DBISAM در Component Palette یک کامپوننت TDBISAMSession انتخاب کرده و بر روی فرم قرار دهید.
2) مشخصههایی که فعلا باید در این کامپوننت تنظیم کنید عبارتند از:
AutoSessionName = True
PrivateDir
فعال کردن مشخصه AutoSessionName باعث میشود خود DBISAM، Session ها را بصورت مقتضی نامگذاری کند. این امکان بخصوص زمانی مفید است که چند کاربر با استفاده از یک نرمافزار واحد (مثلا همین برنامه) بخواهند به Database Server متصل شوند. در چنین حالتی اگر نام Session ها یکسان باشد کاربر اول وارد میشود، اما ورود کاربران دیگر مشکلاتی را بهمراه خواهد داشت.امکان AutoSessionName این مشکل را با نامگذاری اتوماتیک Session ها حل میکند.
DBISAM هنگام باز کردن یک جدول با استفاده از Table یا Query یک نسخه موقتی از جدول مربوطه را در جایی ایجاد میکند و با آن کار میکند، سپس تغییرات را در جدول اصلی اعمال میکند. استفاده از این جدول موقتی برای سرعت بخشیدن به کار با جداول Database میباشد. اگر شما مسیری را برای نگهداری فایلهای موقتی ایجاد نکنید سرعت کار با جداول (خصوص در محیط Client/Server) پایین خواهد بود. شما میتوانید با مقدار دادن به مشخصه PrivateDir در کامپوننت DBISAMSession این مشکل را حل کنید.
3) از صفحه DBISAM در Component Palette یک کامپوننت TDBISAMDatabase انتخاب کرده و بر روی فرم قرار دهید.
4) در مشخصه DatabaseName آن یک عبارت (مثلا dbDatabase1) وارد کنید.
5) همانطور که میبینید مقدار SessionName در کامپوننت DBISAMDatabase1 بصورت اتوماتیک مقداردهی شده و برابر DBISAMSession1_1 قرار گرفته است.
6) به مشخصه DatabaseName کامپوننت DBISAMTable1 نگاه کنید. اکنون این مشخصه حاوی گزینهای بنام dbDatabase1 (و یا عبارتی که شما قبلا در مرحله 4 مشخص کردهاید) میباشد (تصویر 8). آنرا انتخاب کنید.
7) در کامپوننت DBISAMDatabase1 مشخصه Directory را برابر مسیر کنونی جداول قرار دهید.
8) مقدار مشخصه Active کامپوننت DBISAMTable1 را برابر True قرار دهید. همانطورکه میبینید اینکار باعث فعال شدن اتوماتیک کامپوننتهای DBISAMDatabase1 و DBISAMSession1 نیز میشود.
فرم تمام شده شبیه تصویر 9 خواهد بود.
اکنون برنامه ما این قابلیت را دارد که در کمتر از چند دقیقه تبدیل به نسخه Client/Server شود.
در مقاله بعدی نحوه راهاندازی DBISAM Database Server بر روی شبکه و نحوه متصل شدن به آن از طریق همین برنامه را شرح خواهیم داد.
ممنون عزیز ، لطف کردی.
برنامه Database System Utility که تو مقاله گفته اجرا کنید
از کجا اجرا کنیم ؟
باید از سایت اصلی این کامپوننت دانلود کنید رایگاه است
http://www.elevatesoft.com/
موفق باشید
http://www.elevatesoft.com/scripts/d...ll?action=list
تو این لینک لیست دانلود ها است اما نمی دونم کدام را دانلود کنم چون 10 تا 15 می باشد
نسخه VCL آن را دانلود کن آخر صفحه است
خوب من رفتم دانلود کردم ، نتیجش این بود که چند تا کامپونت به کامپونت های دلفی اضافه کردنقل قول:
نوشته شده توسط دنیای دلفی
من برنامه اش را می خواهم !
خواهش میکنم هر کی اطلاعاتی راجب این Database System Utility داره بده
کل سایت را 10 مرتبه گشتم
ولی همه لینک ها خراب ، یا اینکه نسخه کاملش نبود
به من کمک کنید:گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :شیطان: :شیطان: :شیطان: :شیطان: :شیطان: :شیطان: :شیطان: :شیطان: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه: :گریه:
laia2005 عزیز
این لینک رو DBISAM Additional Software and Utilities - Version 4.22 Build 6 دانلود کن از همون سایت
من چه جوری یک فیلد اضافه کنم
اصلا معلوم نیست دکمه Add Field ش کجاست .
فقط میشه یک فیلد ساخت
این عکس را نگاه کنید .
برو به منوی File و گزینه New Table را کلیک کن
لطفا دقت بیشتری بکن و از Help آن نیز استفاده کن
این DBISAM یه مشکل بزرگ داشت که موقع رفتن برق . بانک های آن خراب میشد و قابل تعمیر هم نبود . البته قبلا بحث های زیادی شد ولی بی نتیجه ماند.
شما کاملا بالعکس گفتید .نقل قول:
نوشته شده توسط Mahdi_S_T
شما پس از تنظیم مشخصات فیلد اول با دگمه فلش رو به پایین (Down Arrow Key ) میتونی فیلد جدید رو بسازی و ....
من مدت زیادی از DbIsam استفاده می کنم . DbIsam خصوصیاتی داره که باعث شد پایگاههای داده دیگر رو کنار بگزارم . در ضمن این بانک با برق رفتگی مشکلی نداره.بلکه برای اون راه حلی هم ارائه کرده که کاملا کارا و موثر هستش.نقل قول:
این DBISAM یه مشکل بزرگ داشت که موقع رفتن برق . بانک های آن خراب میشد و قابل تعمیر هم نبود . البته قبلا بحث های زیادی شد ولی بی نتیجه ماند.
من تا حالا لنگه . DbIsam را ندیدمنقل قول:
نوشته شده توسط Pesare_khob
من میخواهم جداول رابطه ای را در DBISAm پیاده کنم
آیا DBISAm این قابلیت ها را داره ؟
سلام دوستان
کسی میتونه بگه چه جوری میشه از DBISAM توی VB استفاده کرد . و اگر کسی DLL مربوطه به اونو داره بزاره .
بله می شه شما باید از DBisam ODBC استفاده کنید اگر خواستید به من PM بزنید
سلام بچه ها
من بانک اطلاعاتی DBISAM رو لازم دارم می شه بگید از کجا باید دانلودش کنم ( البته اگه رایگان باشه بهتره )
با تشکر
از راهنمایی شما ممنونم اگه لطف کنید و این ODBC رو برام بفرستید ممنون میشم .نقل قول:
نوشته شده توسط دنیای دلفی
ma_bb57@yahoo.com
بدست آوردن جمع یک فیلد در DBISAM چرا امکان پذیر نیست
من با روشی که با ADO انجام میدادم میشد اما DBISAM خطا میده
احتمالا اشتباه می نویسید... DBISAM از دستورات SQL پشتیبانی خوبی میکنهنقل قول:
بدست آوردن جمع یک فیلد در DBISAM چرا امکان پذیر نیست
اگر مطمئن هستید که درست می نویسید به سایتش سری بزنید و در فروم مخصوص سوال کنید...
dbisam با دستور Sum در Sql هیچ مشکلی نداره . به راهنمای dbisam مراجعه کنید.
سلام
یعنی واقعا میشه به این DBISAM اعتماد کرد مثل SQLServer و یا Oracel ؟
البته تاریخ رو که نگاه میکنم باید بگم که اگه هم این خاصیت رو اگه نداشت الان دیگه باید داشته باشه