PDA

View Full Version : تست از فعال بودن sqlserver



maisam57
دوشنبه 29 آبان 1385, 16:41 عصر
با سلام
من از datamodule استفاده کردم و میخوام توی فرم login تست کنم که آیا sqlserver نصب هست یا نه و اگر هم نصب هست start شده یا نه و در صورت مشکل پیغام بده
ابتدا توی oncreate فرم login از try..except استفاده کردم که با اینکه sqlserver استارت بود ولی پیغام نبودن sqlserver رو میداد میخواستم بدونم چکار باید بکنم


Try
with Dm_form.ADOConnection1 do
begin
Connected:=False;
CommandTimeout:=1;
ConnectionTimeout:=1;
ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=bimeh;Data Source=.';//'SERVER=.;DATABASE=bimeh;INTEGRATED SECURITY=SSPI';
LoginPrompt:=False;
Connected:=True;
end;
except
begin
MessageDlg('ÇÔßÇá ÏÑ ÇÊÕÇá Èå ÈÇäß ÓÑæÑ',mtWarning,[mbOK],0);
Halt;
end;

dm_form همون datamodule برنامه هست

sarvestan
دوشنبه 29 آبان 1385, 17:38 عصر
اولا وقتی در oncreate form وقتی کدی می نویسید باید نسبت به create شدن فرم هایی که این فرم به آبجکت هایی از اونها می خواهند دسترسی پیدا کنند، مطمئن باشید! بطور خلاصه آیا اول فرم datamodule ایجاد میشه و بعد login form (که در این کد شما باید اینطور باشه و گرنه خطا میده) ویا نه!

و باز خواهشی دوباره!
متن خطا تون را هم اینجا بیاورید!

شاد باشید!

maisam57
سه شنبه 30 آبان 1385, 09:28 صبح
خطای اول بابت نبودن sqlserver یا استارت نبودنش فعال میشه که در کدی کهمن بالا نوشتم مشخص شده کهsqlserver نصب و استارت هست
خطای دوم بلافاصله بعد از خطای اول نمایش داده میشه و بعد از اون هم HALT

sarvestan
سه شنبه 30 آبان 1385, 09:50 صبح
کدهای زیر را ببینید
در کدتون ببینید آیا اول datamodule ایجاد می شود یا فرمی که در oncreate آن کد خودتون را نوشتید!
اگر غیر این حالت بود( اول ایجاد datamodule ) ترتیب ایجاد فرم ها عوض کنید!

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDataModule2, DataModule2);
Application.Run;
end.
با این حالت عوض کنید

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

maisam57
سه شنبه 30 آبان 1385, 10:35 صبح
ممنون از شما من این کارو کردم ولی گفتم شاید ضعف برنامه نویسی باشه و سرعت برنامه بعد از یه مدت پایین بیاد
گفتم شاید راه حل دیگه ای داشته باشه
با تشکر از شما