براي شروع از خود Databe Desktop كه با خود دلفي ريخته ميشه شروع ميكنم.
داخل اين برنامه شويد و File / New / Table رو انتخاب كنيد.
ليستي از انواع ديتابيس وجود داره كه از بين اونها Paradox 7 رو انتخاب كنيد.
صفحه اي ظاهر ميشه كه بايد نام فيلدها رو معرفي كنيد.
فيلد اول رو Name و جنس اون رو S به معنا String تعريف نماييد.
فيلد دوم رو Tel و جنس اون رو هم S بگذاريد . توجه نماييد كه تلفن از جنس N به معناي عدد نميباشد. چون محاسباتي رو آن صورت نميگيرد.
سپس دكمه Save As را زده و فايل مورد نظر خود را به نام Tel.db ذخيره نماييد.
به اين ترتيب شما يك فايل بانك اطلاعاتي پارادوكس ايجاد نموديد.
در مرحله قبلي ديتابيس شما ساخته شد.
اكنون به سراغ دلفي ميرويم. در ابتداي امر يك بخش براي قرار گيري ديتابيس براي استفاده در برنامه طراحي ميكنيم.
به اين بخش Data Madule ميگويند و بايد از File -> New گزينه DataModule رو انتخاب كنيد. صفحه سفيدي شبيه به فرمهاي عادي ظاهر ميگردد. البته بزرگترين تفاوتي كه با فرم عادي دارد عدم امكان قرار دادن كامپوننتهاي نمايشي ميباشد.
حالا از بخش BDE كامپوننت Table و از تب Data Access كامپوننت DataSource رو روي فرم جديد قرار دهيد.
كل برنامه را ذخيره نمائيد و بعد هم بايد مشخصات داخلي اين ديتابيسها رو تنظيم نمائيد.
1. نام فرم Datamodule را به DM تغيير دهيد.
2. در بخشTable -> DatabaseName مقدار . (نقطه) را وارد كنيد.
3. ديتابيسي كه قبلا ايجاد كردين را كنار برنامه اصلي (كنار فايل .dpr) كپي كنيد.
4. مقدار Table -> TableName را با مقدار Tel.db پر كنيد.
5. از Datasource ->DataSet مقدار Table1 رو انتخاب نمائيد.
تغييرات را ذخيره نمائيد در اين شرايط بخش ديتابيس برنامه را ايجاد كرده ايد.
برنامه رو ادامه ميديم.
در اين قسمت ميخوام يك راه سختتر براي ورود و تغيير اطلاعات را پيگيري كنيم.
چون راه هاي ساده زيادي وجود داره ولي من ترجيه ميدم راه سخت رو بگم كه بعدا به دردتون بخوره.
بر روي فرم اصلي برنامه چندتا دكمه قرار دهيد كه عناوين زير ايجاد كنيد :
1."اضافه كردن"و 2."تغيير اطلاعات"و 3."حذف اطلاعات" و 4."جستجو بر حسب نام"و 5."جستجو بر حسب تلفن"
كدهاي هر يك را به ترتيب توضيح خواهم داد. نوع فرم و شكل آن را مطابق ميل خود انتخاب و مرتب نمائيد.
قبل از ورود اطلاعات و كارهاي شبيه به اين ، يك فرم اضافي ايجاد نمائيد و نام آن را Hlp بگذاريد و روي آن دو Edit و دو دكمه قرار دهيد.
يكي از دكمه ها را OK و ديگري را Cancel بگزاريد و روي دكمه OK دبل كليك كنيد. در بخش ONClick كد زير را وارد نمائيد.
کد:
کد:
if hlp.tag = 0 then begin
dm.table.append;
dm.table.fieldvalues['Name'] := edit1.text;
dm.table.fieldvalues['Tel'] := edit2.text;
dm.table.post;
end;
البته بعدا به اين كد مقادير ديگري نيز اضافه ميشود و دليل اينكه شرط tag = 0 را متوجه خواهيد شد.
روي رويداد OnShow فرم نيز موقتا كد زير را وارد نمائيد.
کد:
کد:
if hlp.tag = 0 then begin
edit1.text := '';
edit2.text := '';
end;
حال به سراغ فرم اصلي رفته و روي دكمه 1 دبل كليك كنيد و كد زير را وارد نمائيد.
کد:
hlp.showmodal;
روي دكمه 2 دبل كليك كنيد و كدهاي زير را بنويسيد.
کد:
کد:
var s : string;
begin
if InputQuery('اطلاعات,'لطفا نام مورد نظر را وارد نمائيد',S) then begin
dm.table.filter := 'name = '''+s+'*''';
dm.table.filtered := true;
if dm.table.eof then messagedlg('اين مورد پيدا نشد',mtinformation,[mbok],0)
else begin
hlp.tag := 1;
hlp.edit1.text := dm.table.fieldvalues['name'];
hlp.edit2.text := dm.table.fieldvalues['tel'];
end;
hlp.showmodal;
end;
end;
البته طبق اين كد نامهاي مشابه در نظر گرفته نميشوند و راه هايي براي رفع اين موضوع وجود داره.
يكي از راه ها استفاده از يك فرم دست ساز است كه يك Edit و يك DBGrid خواهد داشت و جستجو در آن صورت ميگيرد كه اين مسئله در اين قسمت در نظر گرفته نشده است و شايد در اواخر اين برنامه به آن بپردازيم.
اين كدها يك مقدار را دريافت ميكنن (براي مثال "علي") و در ديتابيس به دنبال اولين موردي كه با اين موضوع هم خواني داشته باشد ميگردد. با اين تفاوت كه حتي تركيبات اين كلمه نيز در نظر گرفته ميشود ( براي مثال "عليرضا")
اين كار را علامت "*" كه در فرمان ***** قرار داده شده ، انجام ميدهد.
براي دكمه 3 هم تمام كدهاي بالا را تكرار نمائيد با اين تفاوت كه :
1. بجاي hlp.tag := 2 <-- hlp.tag := 1;
2. بجاي hlp.show <-- hlp.showmodal;
برنامه شما در حال حاضر شرايط خوبي دارد ولي بايد يك سري كد به آن اضافه شود تا كاملا درست عمل نمايد.