PDA

View Full Version : ذخیره عدد به صورت صعودی



حسین خانی
جمعه 21 فروردین 1388, 10:47 صبح
با سلام ... :لبخندساده:
یادگیری دلفی رو تازه شروع کردم ... سئوالی دارم :
برنامه ای که عددی را گرفته و سپس اعداد بعدی را تولید کرده و به صورت صعودی در db Acess
ذخیره کرده و آخرین عدد ذخیره شده را در label نشان دهد .
ممنون میشم راهنمایی کنید !!!! :خجالت:

Felony
جمعه 21 فروردین 1388, 11:34 صبح
منطورتون چیه ؟
مثلا ما عدد ورودی رو دادیم 6 یعنی ادامه ی 6 رو بره ؟
اگر منظورتون همینه که تا رسیدن به چه عددی این کار رو ادامه بده ؟

حسین خانی
جمعه 21 فروردین 1388, 12:33 عصر
منطورتون چیه ؟
مثلا ما عدد ورودی رو دادیم 6 یعنی ادامه ی 6 رو بره ؟
اگر منظورتون همینه که تا رسیدن به چه عددی این کار رو ادامه بده ؟

تشکر از لطف شما !
من تازه کارم میتونید از طریق کد توضیح دهید ؟
ممنون ... :خجالت:

Developer Programmer
جمعه 21 فروردین 1388, 13:08 عصر
از اونجایی که ناقص توضیح میدی و حتی به پست SilverSoft رو هم درست پاسخ ندادی؛ من تا یه حدی رو واست درست کردم با این تفاوت که اون چی رو که بهش میدی در جدول ذخیره میکنه. (حتما میدونی که فقط کافیه یه حلقه بهش اضافه کنی ؟)

کد رو تند تند نوشتم واسه همین فرصت نشد که Optimize کنم.

یه سری متغیر هایی تعریف کردم که به کلاسهایی اشاره میکنن... هروقت که دوست داشته باشم یه Instance از کلاس پدر رو می سازم و به متغیر پاس میدم اینطوری یه آبجکت ساخته میشه.
در داخل کد، مقدار دهی های لازم رو میدم که فکر نمیکنم نیازی به توضیح داشته باشه ، فقط جاهایی که به Parent مقدار میدم واسه اینه که اون آبجکت باید روی فرم نشون داده بشه واسه همین باید Parent اون آبجکت، فرم (Self)باشه


begin
With Self do
begin
Caption:= 'Simple DB Program';
Width:= 400;
Height:=400;
Position:= poScreenCenter;
Scaled:=False;
end;

lblLabel := Tlabel.Create(self);
with lblLabel do
begin
Parent:=self;
Caption:='Give me something to save into DB: ';
Left:=5;
Top:=35;
end;

edtNumber := TEdit.Create(self);
With edtNumber do
begin
Parent:= self;
Left:=180;
Top:= 35;
Text:='';
MaxLength:=1;
end;

btnOK := TButton.Create(self);
With btnOK do
begin
Parent:=Self;
Left:= 60;
Top:=100;
width:=150;
height:=50;
Caption:='OK';
OnClick:= btnClick;
end;

AdoConnection:= TAdoConnection.Create(nil);

With AdoConnection do
begin
Connected:=False;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4. 0;Data Source=.\db.mdb;Persist Security Info=False';
LoginPrompt:=False;
end;

AdoDataSet:=TAdoDataSet.Create(nil);
With AdoDataSet do
begin
Connection:= AdoConnection;
CommandText:='Select * from tblValue order by value asc';
end;

AdoDataSource:= TDataSource.Create(nil);
With AdoDataSource do DataSet:= AdoDataSet;

dbNav:= TDBNavigator.Create(nil);
With dbNav do
begin
Parent:= Self;
Align:= alBottom;
DataSource:=AdoDataSource;
end;

dbGrid:= TDBGrid.Create(nil);
With dbGrid do
begin
Parent:= Self;
DataSource:= AdoDataSource;
ReadOnly:=True;
Top:=200;
end;

Try
AdoConnection.Connected:=True; // Try to open DB
AdoDataSet.Active:=True;
Except
Application.Terminate; //Error occured
end;

end;


هر زمان که روی Button کلیک کردی، مقدار "تک حرفی" رو که وارد کرده باشی در جدول ذخیره و بهت نشون میده


procedure TForm1.btnClick(Sender: TObject);
begin
If not (edtNumber.Text ='') Then
begin
AdoDataSet.Edit;
AdoDataSet.FieldByName('Value').AsString:= edtNumber.Text;
AdoDataSet.Post;
end;
end;

از اونجایی که من با کد نویسی، آیجکت ها رو Create میکنم و در هنگام خروج از برنامه، لازمه که اتصال با DB رو قطع کنم... چک میکنم که یه instance از AdoConnection ساخته شده باشه، بعد اون آبجکت رو که اتصال به DB رو در خودش نگه داشته، رو طوری مقدار دهی میکنم که ارتباطش با DB قطع بشه.


if Assigned(AdoConnection) Then AdoConnection.Connected:=False;

vcldeveloper
جمعه 21 فروردین 1388, 18:39 عصر
اینجا درخواست برنامه نکنید! اگر در حال نوشتن برنامه هستید و جایی به مشکل برخوردید، مشکل را مطرح کنید، نه اینکه صورت مسئله را بدید، و کد آماده تحویل بگیرید. اینجا محل بحث و گفتگوی فنی هست، نه سفارش پروژه!

حسین خانی
شنبه 29 فروردین 1388, 01:01 صبح
با تشکر از Afshin_Zavar (http://barnamenevis.org/forum/member.php?u=4242) به خاطر توضیح کامل شما ! :تشویق:

و در پاسخ به دوست عزیزم علی کشاورز (http://barnamenevis.org/forum/member.php?u=4729) :

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