Fa چجوری 10000 تا داده رو وارد دیتابیس کنم؟!

mans_nch

Member
با سلام.
اولا به خاطر توضیحات کاملتون ممنونم.
واقعا توضیحات جامع و مفیده.
اما یک سوال برای بنده مطرحه و راستشو بخواین نمیدونم اصلا صورت سوالم درست میتونه باشه یا نه!!
من تمام توضیحات شما رو خوندم. خط به خط.
همه دستوراتم یاد گرفتم.
اما من اینجا با 10000 تا اسامی و کلیه اطلاعات مربوط به اونا طرفم و نمیدونم منظورتون از جدول کجاست؟
من بالاخره باید این جداول رو ببینم که بتونم اطلاعاتی رو توش وارد کنم یا نه؟!!
نمیشه که تمام اطلاعات رو با این دستورات وارد کرد.
با این دستورات دیابیس ایجاد میشه خوب درست.
تعداد جداول مشخص میشه اینم درست.
اما در نهایت یه جایی باید باشه که این 10000 تا اسامی رو به همراه اطلاعاتشوت وارد کرد!
من حتی یه demo تو همین مبحث پیدا کردم که همینجا فایلشو ضمیممه میکنم.
اصلا نفهمیدم چه جوری کار میکنه هر انتخابی می کنم error میده ( البته تو قسمت embeded خود mmb پلاگین رو اضافه کردم.)
با اینکه توضیحاتتون روان و کامله اما من واقعا گیج شدم!!!!!!!!!!!!!!!!!
خواهش میکنم بیشتر کمکم کنین. ممنون میشم.
-------------------------------------------------------------------
من میخوام یه فایل exe تو mmb درست کنم که تنها وظیفش درست کردن دیتابیس و وارد کردن 10000 تا اسامی به همراه تمام مشخصاتشون تو دیتابیس.
طوری که میخوام هر لحظه گزارش بگیرم و ببینم اطلاعات درست وارد شده یا نه!؟
و وارد کردن اطلاعات توی این فایل exe هیچ ربطی به خود mmb نداشته باشه و یه کاربر توسط همین فایل exe که توی mmb ساخته شده تمام اون 10000 تا مورد رو تو دیتابیس وارد کنه و فایل دیتابیسش رو آماده تحویل من بده و من خودم توسط همون فایل exe یک گزارش از دیتابیس بگیرم و ببینم اون اطلاعات درست طبقه بندی شده یا نه!؟
-------------------------------------------------------------------
حالا من با دیتابیسی که تحویل میگیرم میخوام برنامه اصلیمو شروع کنم بنویسم که یه سری سوالات ممکنه بازم برام مطرح بشه و ازتون کمک بگیرم.
ممنون میشم اگه این مسئله رو کامل واسم جا بندازین. خیلی ضروری و فوریه.
با تشکر از زحمات شما متخصصین.
منصور.
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
این نمونه رو ببینید, شاید بتونبد با الهام گرفتن از این نمونه به چیزی که نیاز دارید برسید.
این نمونه رو من برای ساخت دیتابیس دیکشنری که بالغ بر پنجاه هزار رکورد داشت استفاده کردم.

http://forum.majidonline.com/showthread.php?p=785538#post785538
 

mans_nch

Member
ممنون اما این نمونه رو هم دیدم.
متاسفانه من یکم گیج شدم!!!
الان اولین سوالی که تو همین سورس شما برام مطرحه اینه که شما 50000 تا لغت رو با ترجمه هاش کجا و چجوری وارد دیتابیس کردین؟
و راجب این فایل MMBLIB , gettext souce هم یه توضیح خیلی مختصر بدین ممنون میشم.
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
ببینید, MMB بدلیل اینکه از Unicode پشتیبانی نمیکنه, اگر شما بیاید و دیتابیستون رو توسط برنامه های مدیریت دیتابیس که اطلاعات رو بصورت Unicode ذخیره میکنن طراحی کنید, این اطلاعات موجود در دیتابیس برای MMB قابل خوندن نیست, البته برای نوشته های غیرلاتین مثل همین فارسی اینطور هست.

پس: برای اینکه اطلاعات غیر لاتین در MMB قابل استفاده بشن باید توسط خود MMB این اطلاعات وارد دیتابیس بشه.

من اومدم و در اون مثال این رو به این شکل پیاده سازی کردم که در یک فایل متنی کلمات انگلیسی قرار داده میشه, هر کلمه در یک سطر و کلمات متناظر با اون کلمه که معنی فارسی کلمات هست, در یک فایل دیگه و هر کدوم در یک سط قرار میگیرن.
شماره ی سطر کلمه ی انگلیسی در فایل اول با شماره ی سطر معنی اون کلمه در فایل دوم باید برابر باشه.
چون من در دیتابیسم دوتا فیلد (ستون) داشتم از دوتا فایل استفاده کردم, شما میتونید برای تعداد بیشتری فیلد تغییرش بدید

کلمات و معانی در فایل های متنی جداگونه قرار دارن و اون مثال میاد و فایلها رو میخونه رو اطلاعات رو وارد دیتابیس میکنه که از وازد کردن دستی اطلاعات خیلی بهتر و سریعتر هست.

اون فایل GetText توسط برنامه ی AutoIt تولید شده.
کاری که میکنه اینه که هنگام اجرا فشرده شدن کلیدهای Ctrl+C رو شبیه سازی میکنه که عمل کپی رو انجام میده.
وقتی شما متنی رو انتخاب کنبد و این فایل رو اجرا کنید, عمل کپی شبیه سازی میشه و متن انتخاب شده به حافظه ی کلیپ بورد کپی میشه.
در مرحله ی بعد برنامه میاد و اطلاعات متنی کلیپ بورد رو میخونه و برای MMB میفرسته.
برای ارتباط با MMB کتابخانه ای برای AutoIt ساخته شده که همون فایل MMBLIB هست.
برنامه میاد و محتویات کلیپ بورد رو داخل یک متغیر در MMB میریزه و یک اسکریپت رو اجرا میکنه, البته قبلش کاراکتر هایی که ممکنه مشکل ساز بشن مثل ( ' ) رو Escape میکنه.
 

mans_nch

Member
بینهایت ممنون.
حالا یه چیزایی دارم میفهمم.
الان فکر کنم میتونم سوالات تخصصی تر و واضح تر بپرسم.
یکم از حالت گنگی دراومدم.
1. شما این فایلای text رو چه بلایی سرش آوردین که MMB اونارو SQL میدونه!!؟
منظورم اینه که من بعد از اینکه این فایلارو درست کردم چه جوری تو برنامه فراخوانی کنم و اصلا چه جوری اونا رو تبدیل کنم به یه دیتابیس که SQLite اونارو بعنوان دیتا بیس خودش قبول کنه؟
================================
2. اگه دیتابیس من فقط از حروف انگلیسی باشه چی؟ میتونم از یه برنامه مدیریت دیتابیس مثل sharpplus sqlite developer استفاده کنم؟!
البته من اصلا با این نرم افزار کار نکردم. اگه همچین چیزی امکان داره نظرتونو راجب این برنامه بدبن یا اگه برنامه بهتری سراغ دارین معرفی کنین.

-------------
بینهایت از لطفتون ممنونم. یکم تکون خوردم از این حالت گیجی.
------------
[email protected]
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خواهش میکنم.

فایلهای تکست هیچ بلایی سرشون نیومده, همون فایلهای متنی ساده هستن.
اون برنامه ای که معرفیش کردم میاد و محتویات فایل ها رو سطر به سطر میخونه و وارد دیتابیس مسکنه.
برنامه اول میاد با توجه به ساختاری که در اسکریپت هاش تعیین شده یک دیتابیس SQLite خالی ایجاد میکنه و این اطلاعات رو از فایلهای متنی میخونه و در سطرهای مشخصی از یک جدول مشخص وارد میکنه.
یعنی ساختار فایل دیتابیس که چه جداولی و چه فیبدهایی و با چه اسامی ای داشته باشه در اسکریپت های برنامه تعبیه شده.
این دیتابیس ساختارش بر اساس ساختار دیتابیس موردنیاز برای استفاده در مثال دیکشنری هست.
برای داشتن ساختار متفاوت دیتابیس باید اسکریپت های موجود در برنامه رو ویرایش کنید.

در آخر برنامه یک فایل دیتابیس SQLite تولید میکنه که میتونه در برنامه ی اصلی که برای من دیکشنری بود مورداستفاده قرار بگیره.

ضمن اینکه اگر داده هاتون به زبان انگلیسی باشه مانعی نداره که از برنامه های مدیریت دیتابیس استفاده کنید.
برنامه های زیادی برای اینکار وجود داره, من با برنامه ی SQLite Database Manager کار کردم.
 

mans_nch

Member
بازم ممنون از لطفتون.
کم کم دارم را میفتم.
اسکریپتای این برنامه ویرایششون خیلی سخت نیس که؟
بعدشم شما بعنوان مثال اسکریپت search یا translate رو در نهایت برای فایلای درست شده توسط auto it که همون دیتابیس نهایی ماست نوشتین یا نه برای همون فایلای text نوشتین؟
میخوام ببینم بعد از گرفتن دیتابیس از autoit بازم از محل قرار گیری دقیق کلمات باخبرین؟
راستی برنامتونو باز میکنم میگه : unable to open database
----------------------------------------------
من دیتابیسمو میتونم انگلیسی بنویسم مشکلی نداره. اما سوالی که قبل از شروع همین برنامه sql database manager به ذهنم رسید اینه که اسکریپتایی مثل search یا ... رو چجوری از مکانهای موجود در دیتابیس فراخوانی کنم؟
البته میدونم سوالم جوابش یه سری کدای پلاگین sqlite هست اما میخوام یه دید کلی و خیلی مختصر (فعلا) راجب این قضیه بدین.
کرک sql database manager رو اگه دارین ممنون میشم اینجا ضمیمه کنین.
---------------------------------------------
بازم ممنون.
 
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
قبل از هرچیز اجازه بدید پست قبلیم رو اصلاح کنم، SQLite Database Browser نام صحیح اون برنامه هست.

باید کمی در مورد ساختار یک برنامه ی مبتنی بر دیتابیس و بصورت خاص برنامه ی دیکشنری توضیحاتی ارائه کنم.

ببینید، در برنامه ای که با دیتابیس کار میکنه اول از همه شما نیاز به یک دیتابیس دارید، این دیتابیس رو میتونید با تمام برنامه هایی که این امکان رو فراهم میکنن تهیه کنید.
برنامه توسط پلاگین SQLite با دیتابیس و درواقع اون فایل دیتابیسی که به پلاگین معرفی میکنید ارتباط برقرار میکنه، /س ما باید قبل از هرچیز دیتابیس رو تهیه کنیم.
دیتابیس یک ساختار داره، میتونه از جداول (Table) متعددی ساخته شده باشه که هر جدول میتونه سطرهای (فیلد = Field) مختلفی داشته باشه.
درواقع هر دیتابیس باید حداقل یک جدول داشته باشه و هرجدول حداقل باید یک فیلد داشته باشه. این ساختار رو میتونید توسط برنامه های مدیریت دیتابیس و یا مستقیماً توسط پلاگین SQLite ایجاد کنید.

حالا در مورد دیکشنری؛ بنده اول دیتابیس رو ایجاد کردم، دیتابیس یک جدول بنام Dictionary داره و این جدول دارای دو فیلد به نام های English و Persian هست. تمامی کدها در مثال دیکشنری با این ساختار هماهنگ هستند. همچنین برنامه ای که خدمتتون معرفی شد دیتابیس رو با همین ساختار ایجاد خواهد کرد.
چون ما خودمون دیتابیس رو ساختیم پس مسلماً میدونیم که اطلاعات رو از کجا بخونیم.

اون برنامه ای که دیتابیس رو میسازه ورودیش فایلهای Text هست و خروجیش فایل دیتابیس، این فایل دیتابیس در دیکشنری مورد استفاده قرار خواهد گرفت پس بعد از ساخته شدن دیتابیس با فایلهای Text دیگه کاری نداریم.

اسکریپت های Search و Translation با توجه به توضیحات بالا صرفاً با فایل دیتابیس معرفی شده به برنامه سروکار دارن.

اون برنامه ی GetText که با AutoIt نوشته شده کاری با روند جستجو و کار با دیتابیس نداره بلکه تنها کاری که میکنه اینه که کلمات انتخاب شده رو به دیکشنری میفرسته و اسکریپتی رو اجرا میکنه که کار ترجمه رو انجام میده.

پس ساخت دیتابیس یک بحث هست و نوشتن برنامه ای که اطلاعات رو از دیتابیس بخونه و به دیتابیس بنویسه یک بحث دیگه.
برنامه ی مثلاً SQLite Database Browser دیتابیس برنامه رو تولید میکنه، اما اسکریپت های جستجو باید در برنامه ای که با MMB مینویسیم و با دیتابیس ارتباط برقرار میکنه نوشته میشن.

ضمن اینکه دوست عزیز بحث در مورد کرک و مسائل مشابه خلاف قوانین هست، البته برنامه ی SQLite Database Browser یک برنامه ی رایگان هست.
 

mans_nch

Member
ممنون دانلود کردم و ظاهرا کار کردن باهاش خیلی سادس.
پس شما میگین من اول فایلای text رو آماده کنم درسته؟
بعد بیام اونجا import کنم و نهایتا یه دیتابیس بسازم.(اما یک ریزه کاریم داره این نرم افزار... مثل index و query , ... یکی دو مورد توش به چشم میخوره.)

اسامی که باید در نظر بگیرم شامل چندین گروه میشه.

سوال؟
این گروهها رو چجوری تو فایل text طبقه بندی کنم.
مثلا سنین بین 8 تا 12 سال یه گروه حساب میشن.
کلا 13-14 گروه سنی خواهم داشت.
--------------------------------
هر عضو تو یکی از گروهها دارای این مشخصاته:
1. اسم
2.شناسه کاربری
3.شماره ملی
--------------------------------

در مورد نحوه گروه بندی توی این فایلها و اینکه اصلا شماتیک فایلا چجوری باید باشه یه مقدار توضیح بدین ممنون میشم.
در ضمن بابت درخواست کرک معذرت میخوام و اصلا حواسم نبود که خودم میخوام یه برنامه بنویسم که حق کپی رایت رعایت بشه.
ممنون از یادآوریتون.
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

شما مبحث آموزش قدم به قدم پلاگين SQLite رو ديديد؟
 

mans_nch

Member
دوست عزيز

شما مبحث آموزش قدم به قدم پلاگين sqlite رو ديديد؟






بله دیدم ... اما متاسفانه نتونستم استارت بزنم !! من تو این تاپیک اولش توضیح دادم که چی شده !
اصلا نمیدونم این جداول کجان؟ این جداول بصورت ویژوال چجوری ایجاد میشن؟
من تو استارت موندم.
 

evil_gates

اين نيز بگذرد ...
دوست من

توصيه ميكنم يكبار ديگه با حوصله و با دقت از اولين پست تا آخرين پست رو بخونيد.

فكر ميكنم فرايند آموزش به شكلي بوده كه يك كاربر مبتدي رو آماده ميكنه تا يك ديتابيس بسازه، اطلاعات موردنظرش رو تو ديتابيس ثبت كنه و بر ديتابيس مديريت كنه.

مثالهايي كه همراه با پستهاي مختلف اومده دانلود و بررسي كنيد.

بعد اگه بازم مشكلي بود بفرماييد تا راهنمايي كنيم.

موفق باشيد
:)
 

mans_nch

Member
دوست من

توصيه ميكنم يكبار ديگه با حوصله و با دقت از اولين پست تا آخرين پست رو بخونيد.

فكر ميكنم فرايند آموزش به شكلي بوده كه يك كاربر مبتدي رو آماده ميكنه تا يك ديتابيس بسازه، اطلاعات موردنظرش رو تو ديتابيس ثبت كنه و بر ديتابيس مديريت كنه.

مثالهايي كه همراه با پستهاي مختلف اومده دانلود و بررسي كنيد.

بعد اگه بازم مشكلي بود بفرماييد تا راهنمايي كنيم.

موفق باشيد
:)



========================
ok ، مرسی.. چشم.
 

mans_nch

Member
ما یک سوال برای بنده مطرحه و راستشو بخواین نمیدونم اصلا صورت سوالم درست میتونه باشه یا نه!!
من تمام توضیحات شما رو خوندم. خط به خط.
همه دستوراتم یاد گرفتم.
اما من اینجا با 10000 تا اسامی و کلیه اطلاعات مربوط به اونا طرفم و نمیدونم منظورتون از جدول کجاست؟
من بالاخره باید این جداول رو ببینم که بتونم اطلاعاتی رو توش وارد کنم یا نه؟!!
نمیشه که تمام اطلاعات رو با این دستورات وارد کرد.
با این دستورات دیابیس ایجاد میشه خوب درست.
تعداد جداول مشخص میشه اینم درست.
اما در نهایت یه جایی باید باشه که این 10000 تا اسامی رو به همراه اطلاعاتشوت وارد کرد!
من حتی یه demo تو همین مبحث پیدا کردم که همینجا فایلشو ضمیممه میکنم.
اصلا نفهمیدم چه جوری کار میکنه هر انتخابی می کنم error میده ( البته تو قسمت embeded خود mmb پلاگین رو اضافه کردم.)
با اینکه توضیحاتتون روان و کامله اما من واقعا گیج شدم!!!!!!!!!!!!!!!!!
خواهش میکنم بیشتر کمکم کنین. ممنون میشم.
-------------------------------------------------------------------
من میخوام یه فایل exe تو mmb درست کنم که تنها وظیفش درست کردن دیتابیس و وارد کردن 10000 تا اسامی به همراه تمام مشخصاتشون تو دیتابیس.
طوری که میخوام هر لحظه گزارش بگیرم و ببینم اطلاعات درست وارد شده یا نه!؟
و وارد کردن اطلاعات توی این فایل exe هیچ ربطی به خود mmb نداشته باشه و یه کاربر توسط همین فایل exe که توی mmb ساخته شده تمام اون 10000 تا مورد رو تو دیتابیس وارد کنه و فایل دیتابیسش رو آماده تحویل من بده و من خودم توسط همون فایل exe یک گزارش از دیتابیس بگیرم و ببینم اون اطلاعات درست طبقه بندی شده یا نه!؟
-------------------------------------------------------------------
حالا من با دیتابیسی که تحویل میگیرم میخوام برنامه اصلیمو شروع کنم بنویسم که یه سری سوالات ممکنه بازم برام مطرح بشه و ازتون کمک بگیرم.
ممنون میشم اگه این مسئله رو کامل واسم جا بندازین. خیلی ضروری و فوریه.
با تشکر از زحمات شما متخصصین.
منصور.
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
قبل از هر چيزي شما بايد يك ديتابيس بسازيد كه يك جدول داشته باشه و تو اين جدول تعدادي فيلد كه مقادير شما توش ثبت بشه.

براي اينكار به صفحه 3 آموزش پست شماره 28 به بعد مراجعه كنيد.

http://forum.majidonline.com/showthread.php?t=146090&page=3

اينجا دقيقا به شما گفتيم چطور يك ديتابيس بسازيد كه شامل يك جدول با تعدادي فيلد باشه.

تو صفحه 4 پست 31 به بعد گفتيم كه چطور ميشه با كمك برنامه اي به نام db_creator خيلي ساده تر يك ديتابيس با يك جدول و تعدادي فيلد ساخت.
http://forum.majidonline.com/showthread.php?t=146090&page=4

لطفا فايل پيوست شده به نام db_creator رو دانلود كنيد و به راحتي با چند تا كليك يك ديتابيس و يك جدول با فيلدهاي موردنظر بسازيد.

خب شما ديتابيس رو داريد اما اين ديتابيس خالي از اطلاعات هست.

حالا بايد برنامه اي بسازيد كه به كمك اون بشه اطلاعات موردنظر رو به ديتابيس فرستاد. براي اينكار به همون صفحه 4 و پست 38 مراجعه كنيد. تو اون پست گفتيم چطور برنامه اي بسازيد كه به كمك اون بشه اطلاعات رو تو ديتابيس ثبت كرد.

شما اين برنامه رو مطابق با ديتابيس خودتون ميسازيد و همراه با ديتابيس در اختيار اپراتور قرار ميديد تا به اطلاعات رو ثبت كنه.

وقتي اپراتور اطلاعات رو ثبت ميكنه در واقع اين اطلاعات تو فايل ديتابيسي كه كنار برنامه هست وارد ميشه بعد شما ميتونيد اين فايل رو دريافت كنيد و ازش استفاده كنيد.

براي اينكه ببينيد چه اطلاعاتي تو ديتابيس ثبت شده بايد يك برنامه جديد بسازيد كه تو ديتابيس جستجو ئ نتايج رو نمايش بده. همينطور ميتونيد برنامه اي بسازيد كه اطلاعات رو ويرايش يا حذف كنه. براي اينكار صفحات 4 و 5 پستهاي 39 به بعد رو ببينيد.

تو اين پستها گفتيم چطور ميشه تو اطلاعات ثبت شده تو ديتابيس جستجو كرد و نتايج را نمايش داد. چطور ميشه اطلاعاتي كه نمايش داده ميشن رو ويرايش يا حذف كرد و ...
 

mans_nch

Member
بازم ممنون.
فکر کنم باید یه قسمت از پروژمو بصورت آزمایشی شروع کنم.
مرحله به مرحله برم جلو.
ممنون اط لطفتون.
 

evil_gates

اين نيز بگذرد ...
بازم ممنون.
فکر کنم باید یه قسمت از پروژمو بصورت آزمایشی شروع کنم.
مرحله به مرحله برم جلو.
ممنون اط لطفتون.

شما شروع كنيد در ادامه اگه به كمك نياز داشتيد حتما كمكتون ميكنيم. كار با اين پلاگين خيلي سادس فقط ظاهرش يكم پيچيده نشون ميده :wink:
 

جدیدترین ارسال ها

بالا