PDA

View Full Version : سوال: ذخیره ی تاریخ از یک MaskEdit به SQL و بازگردانی اون (24 ساعت تا تحویل پروژم مونده)



amir_varasteh
یک شنبه 10 بهمن 1389, 18:32 عصر
سلام.

خواهش میکنم جواب بدین.

من 24 ساعت دیگه تحویل پروژه دارم !

میخوام یک تاریخ رو توی SQL ذخیره کنم و سپس موقع نیاز هم برش دارم و برای این کار یک MaskEdit هم دارم.

تاریخ میلادی هم باشه مهم نیست ! فقط تاریخ باشه!

ممنون از همه!

Mask
یک شنبه 10 بهمن 1389, 18:43 عصر
لطفا اگه سوال میپرسید یکم وقت بزارید و سوالتون رو واضح بپرسید.
کجاش گیر کردی؟
مشکلت چیه؟
تو وصل کردن دیتابیس مشکل داری؟
در قسمت ارسال و در یافت تاریخ مشکل داری؟
یا ....
کجاشو مشکل داری؟

amir_varasteh
یک شنبه 10 بهمن 1389, 18:53 عصر
ممنون که جواب دادی.

ببین من دارم برنامه کتابخونه مینویسم. بعد موقع ثبت نام میخوام تاریخ تولد کاربر ، ثبت نام و تاریخ پایان عضویت رو با 3 تا MaskEdit از کاربر بگیرم و توی SQL ذخیره کنم.
ارتباط با SQL هم درسته. توی فرم ثبت نام ، اسم و فامیل و ... رو هم میگیرم. توسط کد زیر میزارم توی SQL:


dm.ADOQuery1.Close;
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('insert into Karbar values('+QuotedStr(Edit1.Text)+','+QuotedStr(Edit2 .Text)+','+QuotedStr(Edit3.Text)+'...
.
.
.تا اینحجا اسم و فامیل رو Insert کردم. اما نمیدونم تاریخ ها رو چطور بزارم تو SQL ؟ خط سوم رو چطوری کامل کنم؟ برای هر تاریخ توی SQL یک فیلد از نوع Date هم تعریف کردم.

ممنونم واقعا!

Mask
یک شنبه 10 بهمن 1389, 19:26 عصر
اول که نیازی نیست نوع فیلد تاریختو از نوع date بزاری.
بعدشم دستور بالا خیلی پیچیدست.
با دستور زیر به راختی میتونید مقادیر لازم رو در بانکتون add کنید.

dm.ADOQuery1.Insert;
dm.ADOQuery1.FieldByName('Name').Text:=Edit1.Text;
dm.ADOQuery1.FieldByName('Date').Text:=MaskEdit1.T ext;
dm.ADOQuery1.Post;

amir_varasteh
یک شنبه 10 بهمن 1389, 19:30 عصر
آقا واقعا ممنون.

پس اون Date رو توی SQL چه فرمتی بزارم ؟ nvarchar ؟
یه سوال دیگه، الان توی این روش پس از post داده ها ثبت میشه ؟ همین ؟ دیگه adoqury.close و clear نمیخواد؟

یک دنیا ممنون! واقعا لطف کردی !!!

ویرایش:
بعد موقعی که خواستم از SQL بیارم روی فرم چیکار کنم؟
این ارور داد که Field Name Not Found!!

Mask
یک شنبه 10 بهمن 1389, 20:10 عصر
پس اون Date رو توی SQL چه فرمتی بزارم ؟ nvarchar ؟الان sql رو سیستمم نصب نیست. که بتونم بگم چه نوع.از نوع txt باشه.(البته در access)

یه سوال دیگه، الان توی این روش پس از post داده ها ثبت میشه ؟ همین ؟ دیگه adoqury.close و clear نمیخواد؟بله داده ها ثبت میشه.همین. البته اگه کوئریتون رو بستید باید open کنید و گرنه نیازی نیست. و این روش کاری به مقدار sql کوئری نداره.

بعد موقعی که خواستم از SQL بیارم روی فرم چیکار کنم؟دقیقا همین مرحله رو برعکس انجام بده.

Edit1.Text:=dm.ADOQuery1.FieldByName('Date').Text;
این ارور داد که Field Name Not Found!! کی این ارور رو داد؟
از لینک زیر این فایل رو بگیر و مطالعه کن. برا شرع بدک نیست.
http://up.iranblog.com/images/x9hvss4f1ytq9jrmwnvb.rar

amir_varasteh
یک شنبه 10 بهمن 1389, 20:22 عصر
آقا درست شد!

قبل از AdoQuery.Insert باید AdoQuery.Open میزدم. واقعا ممنون.

یه سوال اینکه اون فیلد Date که روی MaskEdit گذاشتم، رنجش از چند تا چنده ؟ و چطور میشه Validate شدنش رو انجام داد؟

آقا یک دنیا ممنون واقعا.

Mask
یک شنبه 10 بهمن 1389, 20:28 عصر
رنجش از چند تا چنده
یعنی چی؟منظورتون چیه؟

amir_varasteh
یک شنبه 10 بهمن 1389, 20:37 عصر
آخه ببینین چه اروری میده !
http://imagebin.us/images/b81uecu6axpdgjjo3l0l.png
65742

گاهی اوقات هم این :

http://imagebin.us/images/vh0zvtg2tkg1z8q62g0.png

Mask
یک شنبه 10 بهمن 1389, 20:49 عصر
این مشکلات برا اینه که نوع فیلدهات رو در بانک برای ذخیره داده هات درست انتخاب نکردی.
نمونه برنامه زیر رو برات میزارم سورسش رو بخون.
تمام مشکلاتت حل میشه.
این برنامه کاریست از دوست خوبم nilidelphi (http://barnamenevis.org/forum/member.php?u=111898).
http://barnamenevis.org/showthread.php?205703-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%AF%D9%84%D9%81%DB%8C%28%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D8%B3%D9%88%D8%B1%D8%B3%29
لینک دانلود:
http://up.iranblog.com/images/utxpfydn1urkiotptc.rar

amir_varasteh
یک شنبه 10 بهمن 1389, 21:03 عصر
آخه یک دفعه همینطوری یک داده ثبت کردم با موفقیت!

احساس میکنم از اون تاریخ هاست !