Delphi 2010 ve Delpi XE2 aynı pc üzerinde kullanımı!
Destek talebi(Lütfen oy verelim!)
Sitemiz üye alımına kapatılmıştır!
! CODEBANK 2012 !
İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
property TypeOf: SQLDMO_OBJECT_TYPE readonly dispid 4; property Properties: Properties readonly dispid 7; property Name: WideString dispid 9; //property ID: Integer readonly dispid 10; //<----------iptal edilen satır property SourceObjectOwner: WideString dispid 11; property SourceObjectName: WideString dispid 12; property Description: WideString dispid 13; procedure Remove; dispid 100; procedure BeginAlter; dispid 101;
//SQLDMO ile local bilgisyar ve yerel ağdaki çalışan sql server listesi alprocedure GetAvailableServers( ServerList : TStrings);var SQLDMO:Application; ListOfServers:NameList; i:integer;begin SQLDMO:=CoApplication.Create; ListOfServers:=SQLDMO.ListAvailableSQLServers; for i:=1 to ListOfServers.Count do begin ServerList.Add(ListOfServers.Item(i)); end;end;
procedure TForm1.Button2Click(Sender: TObject);begin ComboBox1.Items:= GetAllServers;end;
//SQLDMO ile local bilgisyar ve yerel ağdaki çalışan sql server listesi alfunction GetAllServers:TStringList;var sApp : _Application ; sName : NameList; rtn :TStringList; count,i :Integer;begin try sApp :=coApplication.Create; sName :=sApp.ListAvailableSQLServers; rtn :=TStringList.Create; count :=SName.Count; for i :=0 to count -1 do begin rtn.Append(sName.Item(i)); end; result :=rtn; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.FormCreate(Sender: TObject);begin GetAvailableServers(ComboBox1.Items);end;
function SQLServerList(var ServerList:Tstrings):integer;var SQLServer:Variant; SvrList:Variant; i,nServers:integer; sRetValue:String;begin SQLServer := CreateOleObject('SQLDMO.Application'); SvrList:= SQLServer.ListAvailableSQLServers; nServers:=SvrList.Count; serverlist.Clear; for i := 1 to nservers do serverlist.Add(svrlist.Item(i)); SQLServer:=NULL; svrList:=NULL; result:=nServers;end;
//SQLDMO ile Sql Servere ping atarak versiyonu öğrenmefunction getSQLServerVersion(ServerName,LoginName,LoginPassword:String):String;var osqlserver :_SqlServer; temp :SQLDMO_SQL_VER;begin try oSqlserver :=coSqlserver.Create; oSqlserver._AddRef; oSqlserver.Name :=ServerName; temp :=oSqlserver.PingSQLServerVersion(ServerName,LoginName,LoginPassword); if temp=SQLDMOSQLVer_Unknown then result :='UnknownVer' else if temp=SQLDMOSQLVer_Pre_60 then result :='SQL60' else if temp=SQLDMOSQLVer_60 then result :='SQL60' else if temp=SQLDMOSQLVer_65 then result :='SQL65' else if temp=SQLDMOSQLVer_70 then result :='SQL70' else result :='SQL2000'; oSqlserver._Release; oSqlserver :=nil; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button5Click(Sender: TObject);begin Label4.Caption:= getSQLServerVersion('.','sa',''); //(<bilgisyatAdı>,<KullanıcıAdı>,<Şifre>)end;
//SQLDMO ile Sql Servere ping atarak versiyonu öğrenme//_SQLServer ------> uses SQLDMO_TLB//TOleEnum ------> uses ActiveXfunction PingSQLServerVersion(const ServerName, UserName, Password: string):single;var oSQLServer: _SQLServer; oSQLDMO_SQL_VER: TOleEnum;begin oSQLServer := CoSQLServer.Create; oSQLDMO_SQL_VER := oSQLServer.PingSQLServerVersion(ServerName,UserName,Password); oSQLServer := nil; case oSQLDMO_SQL_VER of SQLDMOSQLVer_Pre_60: result := 5.0; SQLDMOSQLVer_60 : result := 6.0; SQLDMOSQLVer_65 : result := 6.5; SQLDMOSQLVer_70 : result := 7.0; SQLDMOSQLVer_80 : result := 8.0; else result := 0.0; end;end;
procedure TForm1.Button6Click(Sender: TObject);begin try if PingSQLServerVersion('.','sa','')<>0 then showmessage('server çalışıyor..') except showmessage('server çalışmıyor.......'); end;end;
//SQLDMO ile sql server veritabanına bağlantıfunction ConnectToServer(const FHost, FLogin, FPWD: string): Boolean;var SQLServer: _SQLServer; FLoginSecure:WordBool;begin sqlserver:=coSqlserver.Create; //SqlServer.LoginSecure:= FLoginSecure;// NT-->Login Password; try sqlServer.Connect(FHost,FLogin,FPWD); result:=True; except On E:EOleException do begin ShowMessage(e.Message); result:=false; end; end; sqlserver:=nil;end;
procedure TForm1.Button1Click(Sender: TObject);begin if ConnectToServer('.','sa','') then showmessage('server çalışıyor') else showmessage('server çalışmıyor.....');end;
//SQLDMO ile sql server bağlantı kontrolüfunction GetConnected(const ServerAdi,KullaniciAdi,Sifre:string): Boolean;var oSQLServer: _SQLServer;begin try osqlserver:=coSqlserver.Create; osqlserver.Connect(ServerAdi,KullaniciAdi,Sifre) ; Result := oSQLServer.VerifyConnection(SQLDMOConn_CurrentState); except ShowMessage('SQL Hata....'); end; osqlserver:=nil;end;
procedure TForm1.Button11Click(Sender: TObject);begin if GetConnected('.','sa','') then ShowMessage('Bağlantı var...') else ShowMessage('Bağlantı yok...');end;
//SQLDMO ile bir sql server'deki veritabanı adları almafunction getAllDataBases(serverName,LoginName,LoginPassword:String):TStringList;var oSqlServer :_SqlServer; rtn :TStringList; odataBase :_DataBase; count,i :Integer;begin try osqlServer :=coSqlServer.Create; osqlServer._AddRef; osqlServer.Connect(ServerName,LoginName,LoginPassword); count :=osqlServer.Databases.Count; rtn :=TStringList.Create; for i :=1 to count do begin odataBase :=osqlserver.Databases.Item(i,'owner'); rtn.Append(odataBase.Name); end; result :=rtn; osqlServer.DisConnect; oSqlServer._Release; osqlServer :=nil; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button4Click(Sender: TObject);begin ListBox1.Items:=getAllDataBases(ComboBox1.Text,'sa','');end;
//SQLDMO ile veritabanı oluşturmaprocedure createDatabase(serverName,LoginName,LoginPassword,dataBaseName:String);var odataBase :_Database; oDBFileData :_DBFile; oLogFile :_LogFile; osqlServer :_SqlServer;begin try osqlServer :=cosqlServer.Create; osqlServer._AddRef; osqlServer.Connect(serverName,LoginName,LoginPassword); odataBase :=coDataBase.Create; odataBase._AddRef; oDBFileData :=coDBFile.Create; oDBFileData._AddRef; oLogFile :=coLogFile.Create; oLogFile._AddRef; oDataBase.Name :=dataBaseName; oDBFileData.Name :=dataBaseName; //'c:\program files\microsoft sql server\mssql\data\' oDBFileData.PhysicalName :=oSqlServer.Registry.SQLDataRoot +'\data\'+dataBaseName+'.mdf'; oDBFileData.PrimaryFile :=true; oDBFileData.Size :=2; oDBFileData.FileGrowthType := SQLDMOGrowth_MB; oDBFileData.FileGrowth := 1; oDatabase.FileGroups.Item('PRIMARY').DBFiles.Add(oDBFileData); oLogFile.Name :=dataBaseName+'Log'; oLogFile.PhysicalName :=oSqlServer.Registry.SQLDataRoot +'\data\'+dataBaseName+'.ldf'; oLogFile.Size :=2; oDatabase.TransactionLog.LogFiles.Add(oLogFile); oSqlServer.Databases.Add(oDatabase); osqlServer.DisConnect; oSqlServer._Release; oSqlServer :=nil; oDataBase._Release; oDataBase :=nil; oDBFileData._Release; oDBFileData :=nil; oLogFile._Release; oLogFile :=nil; except on E:Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button7Click(Sender: TObject);begin //dbBORDRO adlı veritabanını oluştursun createDatabase('.','sa','','dbBORDRO');end;
//SQLDMO ile veritabanı oluşturmafunction CreateSQLDatabase(ServerName:string; DBName:string ;DBPath:string ):Integer;const SQLDMOGrowth_MB = 0;var Server,DataBase,LogFile,DBFileData : OleVariant ; FileGroup : OLEVariant ;begin //sql servere bağlan Server := CoSQLServer.Create ; //sql server authentication login Server.Connect(Server,'sa','') ; { //win nt authentication login Server.LoginSecure := True ; Server.Connect(Server); } DataBase := CoDatabase.Create ; DBFileData := CoDBFile.Create ; LogFile := CoLogFile.Create ; Database.Name := DBName ; //database dosyası DBFileData.Name := (DBPath + '_Data') ; DBFileData.PhysicalName := (DBPath + '.mdf') ; DBFileData.PrimaryFile := True ; DBFileData.FileGrowthType := SQLDMOGrowth_MB ; DBFileData.FileGrowth := 1 ; //database transaction log dosyası LogFile.Name := (DBPath + '_Log') ; LogFile.PhysicalName := (DBPath + '.ldf'); Database.TransactionLog.LogFiles.Add(LogFile) ; //PRIMARY grubuna ekle Database.FileGroups.Item('PRIMARY').DBFiles.Add(DBFileData) ; //datadase register et Server.Databases.Add(Database) ; Server.Disconnect ; Server := Null ; Result := 1;end;
procedure TForm1.Button3Click(Sender: TObject);var server_name,db_name,db_path:string;begin server_name:='127.0.0.1'; db_name:='MUSDB'; db_path:=ExtractFilePath(Forms.Application.ExeName)+'DATA\MUSDB'; if CreateSQLDatabase(server_name,db_name,db_path)=1 then Showmessage('veritabanı oluşturuldu') else Showmessage('veritabanı oluşturulamadı........');end;
//SQLDMO ile veritabanı silmeprocedure dropDatabase(serverName,LoginName,LoginPassword,dataBaseName:String);var osqlServer:_SqlServer;begin try osqlServer :=coSqlserver.Create; osqlServer._AddRef; osqlServer.Connect(serverName,LoginName,LoginPassword); osqlServer.Databases.Remove(dataBaseName,'owner'); oSqlServer.DisConnect; osqlServer._Release; oSqlServer :=nil; except on E:Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button8Click(Sender: TObject);begin //dbBORDRO adlı veritabanını sil dropDatabase('.','sa','','dbBORDRO');end;
//SQLDMO ile veritabanı yedeğini almafunction BackupDatabase(serverName,LoginName,LoginPassword,DBName,BackupFile: string): Boolean;var osqlserver: _SQLServer; oBackup:_Backup; obackupdrv:_backupdevice;begin osqlserver:=coSqlserver.Create; osqlserver.Connect(serverName,LoginName,LoginPassword) ; try DeleteFile(BackupFile); try oBackup:=coBackup.Create; obackupdrv:=coBackupDevice.Create ; obackupdrv.name:=DBName+'_bak'; obackupdrv.Type_ :=SQLDMODevice_DiskDump; obackupdrv.PhysicalLocation :=BackupFile ; try osqlServer.BackupDevices.Add(obackupdrv); except showmessage('SQL Hata....'); end; oBackup.action:=SQLDMOBackup_Database; oBackup.database:=DBName; oBackup.Devices :=DBName+'_bak'; oBackup.SQLBackup(osqlserver) ; result:=True; except On E:EOleException do begin ShowMessage(e.Message); result:=false; end; end; finally osqlserver:=nil; oBackup:=nil; obackupdrv:=nil; end;end;//sql server--->enterprise manager--->management--->backup//altında önceden oluşturulmuş bir backup device varsa bunu silerprocedure dropBackUpDevice(serverName,Loginname,LoginPassword,deviceName:String);var osqlServer :_SqlServer; count,i:Integer; oBackupDevice :_BackupDevice;begin try osqlServer :=coSqlServer.Create; osqlServer._AddRef; osqlServer.Connect(servername,LoginName,LoginPassword); count :=osqlServer.BackupDevices.Count; For i :=1 to count do begin oBackupDevice:=osqlServer.BackupDevices.Item(i); if UpperCase(Trim(oBackupDevice.Name))=UpperCase(trim(deviceName+'_bak')) then begin oSqlServer.BackupDevices.Remove(i); break; end; end; oSqlserver.DisConnect; oSqlServer._Release; oSqlServer :=nil; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button12Click(Sender: TObject);var db_name,db_path:string;begin db_name:='dbBORDRO'; //veritabanı adı db_path:='C:\Bord.bck'; //yedeklemenin yapılacağı dosya adı dropBackUpDevice('.','sa','',db_name); //BackupDatabase fonksiyonu hata vermesin diye önceden oluşturulmuş backup device varsa siler BackupDatabase('.','sa','',db_name,db_path);end;
//SQLDMO ile veritabanı yedeğini almaprocedure createBackUpDatabase(serverName,LoginName,LoginPassword,DBName,FileName:String);var osqlServer :_SqlServer; oBackup:_Backup; oBackupDevice :_BackupDevice;begin try osqlServer :=coSqlServer.Create; osqlserver._AddRef; osqlServer.Connect(servername,LoginName,LoginPassword); oBackupDevice :=coBackupDevice.Create; oBackupDevice.PhysicalLocation :=FileName; oBackupDevice.Type_ :=SQLDMODevice_DiskDump; osqlServer.BackupDevices.Add(oBackupDevice); oBackup.action:=SQLDMOBackup_Database; oBackup.database:=DBName; oBackup.Devices :=DBName+'bak'; oBackup.SQLBackup(osqlserver) ; osqlServer.DisConnect; osqlserver._Release; osqlserver :=nil; oBackup:=nil; oBackupDevice:=nil; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER : '+E.message),'SQLSERVER',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.Button9Click(Sender: TObject);var db_name,db_path:string;begin db_name:='dbBORDRO'; //veritabanı adı db_path:='C:\Bord.bck'; //yedeklemenin yapılacağı dosya adı dropBackUpDevice('.','sa','',db_name); //BackupDatabase fonksiyonu hata vermesin diye önceden oluşturulmuş backup device varsa siler createBackUpDatabase('.','sa','',db_name,db_path);end;
//SQLDMO ile veritabanı yedeğini geri yüklemefunction RestoreDB(serverName,LoginName,LoginPassword,DBName, RestoreFile: string): Boolean;var osqlserver: _SQLServer; oRestore:_Restore;begin osqlserver:=CoSQLServer.Create; osqlserver.Connect(serverName,LoginName,LoginPassword) ; try oRestore:=CoRestore.Create; oRestore.Files:=RestoreFile; oRestore.Database:=DBName; oRestore.SQLRestore(osqlserver); ShowMessage('Database geri yükleme tamamlandı...'); result:=True; osqlserver:=nil; oRestore:=nil; except On E:EOleException do begin ShowMessage(e.Message); result:=false; end; end;end;
procedure TForm1.Button13Click(Sender: TObject);begin RestoreDB('.','sa','','dbBORDRO','C:\Bord.bck');end;
//tablo sql scriptini göstermeprocedure TForm1.Button20Click(Sender: TObject);var DMO,DB,TB: OLEvariant; Str:string;begin Dmo:= CreateOleObject('SQLDMO.SQLServer'); DB:= CreateOleObject('SQLDMO.DataBase'); TB:= CreateOleObject('SQLDMO.table'); Dmo.connect('.','sa',''); db:=dmo.databases.item('pubs'); tb:=db.tables.item('jobs'); str:=tb.script(); showmessage(str); Dmo:=null; DB:=null; TB:=null;end;
//çalışabilir durumdaki sql server listesifunction GetAllServers:TStringList;var sApp : _Application ; sName : NameList; rtn :TStringList; count,i :Integer;begin try sApp :=coApplication.Create; sName :=sApp.ListAvailableSQLServers; rtn :=TStringList.Create; count :=SName.Count; for i :=0 to count -1 do begin rtn.Append(sName.Item(i)); end; result :=rtn; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER :'+E.message),'SQL Server Service Manager',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.FormCreate(Sender: TObject);begin str_exe:=ExtractFilePath(Forms.Application.ExeName); ComboBox1.Items.Assign(GetAllServers); ComboBox1.ItemIndex:=0; //sql server service :sql server veritabanı motoru ComboBox2.ItemIndex:=0;end;
//sql server başlatfunction StartSQLServer(ServerName,LoginName,LoginPassword:String):Boolean;var oSqlServer :_SqlServer;begin try osqlserver :=coSqlserver.Create; oSqlServer._AddRef; osqlserver.Name :=serverName; if oSqlServer.Status =SQLDMOSvc_Stopped then oSqlServer.Start(False,ServerName,LoginName,LoginPassword); if oSqlServer.Status=SQLDMOSvc_Paused then oSqlServer.Continue; if (oSqlServer.Status=SQLDMOSvc_Paused) or (oSqlServer.Status=SQLDMOSvc_Stopped) then result :=False else result :=true; oSqlServer._Release; oSqlServer :=nil; except on E :Exception do begin result:=False; Forms.Application.MessageBox(Pchar('SQLSERVER :'+E.message),'SQL Server Service Manager',MB_OK+MB_ICONSTOP); end; end;end;//sql server duraklatfunction PauseSQLServer(ServerName:String):Boolean;var oSqlserver :_SqlServer;begin try oSqlServer :=coSqlserver.Create; oSqlserver._AddRef; oSqlserver.Name :=ServerName; oSqlServer.Pause; oSqlserver._Release; oSqlserver :=nil; result :=true; except on E :Exception do begin result :=false; Forms.Application.MessageBox(Pchar('SQLSERVER :'+E.message),'SQL Server Service Manager',MB_OK+MB_ICONSTOP); end; end;end;//sql server durdurfunction StopSQLServer(serverName:String):Boolean;var oSqlserver :_SqlServer;begin try oSqlServer :=coSqlserver.Create; oSqlserver._AddRef; oSqlserver.Name :=ServerName; oSqlServer.Stop; oSqlserver._Release; oSqlserver :=nil; result :=true; except on E :Exception do begin result :=false; Forms.Application.MessageBox(Pchar('SQLSERVER :'+E.message),'SQL Server Service Manager',MB_OK+MB_ICONSTOP); end; end;end;//sql server durumufunction getSQLServerStatus(ServerName:String):String;var oSqlServer :_SqlServer;begin try osqlserver :=coSqlserver.Create; osqlServer._AddRef; osqlserver.Name :=serverName; if oSqlserver.Status=SQLDMOSvc_Unknown then result :='Unknown ' else if oSqlserver.Status=SQLDMOSvc_Running then result :='Running ' else if oSqlserver.Status=SQLDMOSvc_Paused then result :='Paused ' else if oSqlserver.Status=SQLDMOSvc_Stopped then result :='Stopped ' else if oSqlserver.Status=SQLDMOSvc_Starting then result :='Starting ' else if oSqlserver.Status=SQLDMOSvc_Stopping then result :='Stopping ' else if oSqlserver.Status=SQLDMOSvc_Continuing then result :='Continuing ' else if oSqlserver.Status=SQLDMOSvc_Pausing then result :='Pausing '; oSqlserver._Release; oSqlserver :=nil; except on E :Exception do begin Forms.Application.MessageBox(Pchar('SQLSERVER :'+E.message),'SQL Server Service Manager',MB_OK+MB_ICONSTOP); end; end;end;
procedure TForm1.SpeedButton1Click(Sender: TObject);begin if StartSQLServer('.','sa','') then begin StatusBar1.Panels[0].Text:=getSQLServerStatus(ComboBox1.Text)+'-'+'\\'+ComboBox1.Text+'-'+'MSSQLServer'; Image1.Picture.LoadFromFile(str_exe+'runningserver.bmp'); SpeedButton1.Enabled:=false; SpeedButton2.Enabled:=true; SpeedButton3.Enabled:=true; end else begin end;end;
procedure TForm1.SpeedButton2Click(Sender: TObject);begin if Forms.Application.MessageBox(Pchar('\\'+ComboBox1.Text+ ' üzerinde MSSQLSERVER servisini DURAKLATMAK istiyor musunuz?'),'SQL Server Service Manager',MB_YESNO+MB_ICONINFORMATION)=ID_YES then begin PauseSQLServer(ComboBox1.Text); StatusBar1.Panels[0].Text:=getSQLServerStatus(ComboBox1.Text)+'-'+'\\'+ComboBox1.Text+'-'+'MSSQLServer'; Image1.Picture.LoadFromFile(str_exe+'pauseserver.bmp'); SpeedButton1.Enabled:=true; SpeedButton2.Enabled:=false; SpeedButton3.Enabled:=true; end;end;
procedure TForm1.SpeedButton3Click(Sender: TObject);begin if Forms.Application.MessageBox(Pchar('\\'+ComboBox1.Text+ ' üzerinde MSSQLSERVER servisini DURDURMAK istiyor musunuz?'),'SQL Server Service Manager',MB_YESNO+MB_ICONINFORMATION)=ID_YES then begin StopSQLServer(ComboBox1.Text); StatusBar1.Panels[0].Text:=getSQLServerStatus(ComboBox1.Text)+'-'+'\\'+ComboBox1.Text+'-'+'MSSQLServer'; Image1.Picture.LoadFromFile(str_exe+'stopserver.bmp'); SpeedButton1.Enabled:=true; SpeedButton2.Enabled:=true; SpeedButton3.Enabled:=false; end;end;