DELPHI 7 (WIN32) 与VC#启动SQL SERVER 2000服务

原创 2004年10月16日 00:12:00

DELPHI WIN32使用Service API和SQL SERVER自备服务工具scm来启动SQL SERVER
unit Unit2;

interface
  procedure RunMSSQLSERVICE ;
implementation
uses
  Windows,WinSvc;
procedure RunMSSQLSERVICE ;
   var
    SrvHandle: SC_HANDLE;
    Service_Status: _SERVICE_STATUS;
    SrvStatus : Integer;
  begin
   TRY
    SrvHandle := OpenSCManager('', SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS);
    SrvHandle := OpenService(SrvHandle, PChar('MSSQLServer'), SERVICE_QUERY_STATUS or SERVICE_START);
    if  QueryServiceStatus(SrvHandle, Service_Status) then
       begin

         SrvStatus := Service_Status.dwCurrentState;
         if   SrvStatus = SERVICE_STOPPED   then
             begin
               Winexec('scm -action 1 -slient 1 -service mssqlserver ',sw_Normal);
             end;
       end;
   EXCEPT
   END;   
  end;

end.
-------------------------------------------------------------------------------------------

VC# 2005 EXPRESS在.NET框架下只需封装了serviceAPI的serviceController组件帮忙
#region Using directives

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;

#endregion

namespace WindowsApplication1
{
    partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                this.serviceController1.ServiceName = "MSSQLServer";
                if (this.serviceController1.Status != System.ServiceProcess.ServiceControllerStatus.Stopped)
                {
                    this.serviceController1.Start();
                }
            }
            catch
            {

            }
        }
    }
}

基本上原理归为使用系统提供的 SERVICE API或WMI接口 启动,以及使用SQL SERVER自带工具scm来启动.
最简单的办法是SCM命令行方法scm -action 1 -slient 1 -service mssqlserver

SQL server 2000服务MSSQLSERVER无法启动解决办法

SQL server 2000使用120天后再次启动MSSQLSERVER‘本地计算机 上的 MSSQLSERVER 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。’这是因为你的SQL...
  • zisongjia
  • zisongjia
  • 2017年11月15日 18:13
  • 638

Delphi连接SQL Server 2000

一、在Delphi7中连接MS SQL Server 2000的方法。刚开始时界面如下:添加4个控件。     设置控件属性过程: 1、ADOConnection1设置1)双击ADOConnectio...
  • cnlht
  • cnlht
  • 2009年11月12日 14:22
  • 33972

MSSQLSERVER服务启动后又停止的处理方法

今天值班时遇到南山海雅店铺POS和考勤不能使用的问题,连接到他们电脑上发现数据库已停止,无法启动。启动时会弹出“本地计算机上的MSSQLSERVER服务启动后又停止了。一些服务自动停止,如果它们没有什...
  • yxwmzouzou
  • yxwmzouzou
  • 2012年10月21日 10:41
  • 5783

Sql server mssqlserver 服务无法启动

今天上午sqlserver还好好的,结果下午想用的时候他就死了。。。连接的时候连接不上,说是Sql server mssqlserver 服务无法启动,然后各种百度,找到了适合我的解决方法,现在分享给...
  • luobida222
  • luobida222
  • 2016年12月19日 14:35
  • 2338

如何解决 SQL Server 2000 中的连接问题(转载)

如何解决 SQL Server 2000 中的连接问题察看本文应用于的产品 文章编号 : 827422 ...
  • whchen
  • whchen
  • 2005年11月18日 09:16
  • 2919

SQL Server 2000 没开1433端口的问题

    把SQL server 2000装上去之后,发现客户端连接不了,输入netstat -an查看,发现SQL server的默认端口1433没有开放。    网上说Win2003的系统需要打SP...
  • SysProgram
  • SysProgram
  • 2010年11月25日 23:51
  • 2474

在启动 sql2000 服务时提示: 错误 1609 由于登录失败无法启动服务

服务是否动,在我的电脑是右击,--管理--服务。查看是否都已经启动!
  • xxxxxx333
  • xxxxxx333
  • 2014年11月01日 14:52
  • 1035

SQL SERVER 2000 链接服务器的创建和调用

【创建一个链接服务器LinkedServer】 sp_addlinkedserver @server = N'LinkedServer',     @srvproduct = N' ',    ...
  • lotusyangjun
  • lotusyangjun
  • 2013年12月14日 10:21
  • 1563

PHP连接sqlserver2000数据库

$dbhost = ""; //服务器名字加端口名字,之间用逗号连接(,是sqlserver专有的,mysql用:冒号)     $dbuser = ""; //你的mssql用户名      $...
  • bj123467
  • bj123467
  • 2017年06月17日 16:46
  • 798

SQL SERVER 2000 启动不起来

 最近不知道为什么sql server2000 突然启动不了,看了MSSQL/LOG/ERRORLOG 文件Starting up database master. 错误: 9003,严重性: 20,...
  • lijuan_0301
  • lijuan_0301
  • 2009年03月10日 17:12
  • 1131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DELPHI 7 (WIN32) 与VC#启动SQL SERVER 2000服务
举报原因:
原因补充:

(最多只允许输入30个字)