Mohammad S
شنبه 23 خرداد 1383, 03:40 صبح
سلام دوستان عزیز
من قبلا این سوال را پرسیدم اما کسی به من جواب نداد مجددا می پرسم.
دستوراتی مثل Create DataBase, Create Table , .... کجا باید نوشته شوند تا توسط دلفی بتوان آنها را برای SQL Server اجرا کرد. من دستورات زیر را که توسط Generate SQL Script خود SQL Server ساخته شده در یک SQLQuery از تب dbExpress نوشتم و با دستور
SQLQuery1.ExecSQL(True)
آن را اجرا کردم ولی با پیغام زیر مواجه می شوم: البته ناگفته نماند که به دیتابیس Master لوگین کردم.
===============================
کدهای مورد نظر:
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Test')
DROP DATABASE [Test]
CREATE DATABASE [Test] ON (NAME = N'Test_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\80\Tools\data\Test_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'Test_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\80\Tools\data\Test_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
COLLATE Arabic_CI_AS
exec sp_dboption N'Test', N'autoclose', N'true'
exec sp_dboption N'Test', N'bulkcopy', N'false'
exec sp_dboption N'Test', N'trunc. log', N'true'
exec sp_dboption N'Test', N'torn page detection', N'true'
exec sp_dboption N'Test', N'read only', N'false'
exec sp_dboption N'Test', N'dbo use', N'false'
exec sp_dboption N'Test', N'single', N'false'
exec sp_dboption N'Test', N'autoshrink', N'true'
exec sp_dboption N'Test', N'ANSI null default', N'false'
exec sp_dboption N'Test', N'recursive triggers', N'false'
exec sp_dboption N'Test', N'ANSI nulls', N'false'
exec sp_dboption N'Test', N'concat null yields null', N'false'
exec sp_dboption N'Test', N'cursor close on commit', N'false'
exec sp_dboption N'Test', N'default to local cursor', N'false'
exec sp_dboption N'Test', N'quoted identifier', N'false'
exec sp_dboption N'Test', N'ANSI warnings', N'false'
exec sp_dboption N'Test', N'auto create statistics', N'true'
exec sp_dboption N'Test', N'auto update statistics', N'true'
use [Test]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_name]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tb_name]
if not exists (select * from master.dbo.syslogins where loginname = N'etmam')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'hometools', @loginlang = N'us_english'
if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')
select @loginlang = @@language
exec sp_addlogin N'etmam', null, @logindb, @loginlang
END
exec sp_addsrvrolemember N'etmam', sysadmin
exec sp_addsrvrolemember N'etmam', securityadmin
exec sp_addsrvrolemember N'etmam', serveradmin
exec sp_addsrvrolemember N'etmam', setupadmin
exec sp_addsrvrolemember N'etmam', processadmin
exec sp_addsrvrolemember N'etmam', diskadmin
exec sp_addsrvrolemember N'etmam', dbcreator
exec sp_addsrvrolemember N'etmam', bulkadmin
if not exists (select * from dbo.sysusers where name = N'etmam' and uid < 16382)
EXEC sp_grantdbaccess N'etmam', N'etmam'
exec sp_addrolemember N'db_owner', N'etmam'
CREATE TABLE [dbo].[tb_name] (
[ID] [int] NOT NULL ,
[Family] [nvarchar] (30) COLLATE Arabic_CI_AS NOT NULL ,
[Name] [nvarchar] (30) COLLATE Arabic_CI_AS NULL
) ON [PRIMARY]
ALTER TABLE [dbo].[tb_name] WITH NOCHECK ADD
CONSTRAINT [PK_tb_name] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
:roll:
وقتی هم می خواهم Active آن را True کنم با خطای زیر مواجه می شوم:
من قبلا این سوال را پرسیدم اما کسی به من جواب نداد مجددا می پرسم.
دستوراتی مثل Create DataBase, Create Table , .... کجا باید نوشته شوند تا توسط دلفی بتوان آنها را برای SQL Server اجرا کرد. من دستورات زیر را که توسط Generate SQL Script خود SQL Server ساخته شده در یک SQLQuery از تب dbExpress نوشتم و با دستور
SQLQuery1.ExecSQL(True)
آن را اجرا کردم ولی با پیغام زیر مواجه می شوم: البته ناگفته نماند که به دیتابیس Master لوگین کردم.
===============================
کدهای مورد نظر:
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Test')
DROP DATABASE [Test]
CREATE DATABASE [Test] ON (NAME = N'Test_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\80\Tools\data\Test_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'Test_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\80\Tools\data\Test_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
COLLATE Arabic_CI_AS
exec sp_dboption N'Test', N'autoclose', N'true'
exec sp_dboption N'Test', N'bulkcopy', N'false'
exec sp_dboption N'Test', N'trunc. log', N'true'
exec sp_dboption N'Test', N'torn page detection', N'true'
exec sp_dboption N'Test', N'read only', N'false'
exec sp_dboption N'Test', N'dbo use', N'false'
exec sp_dboption N'Test', N'single', N'false'
exec sp_dboption N'Test', N'autoshrink', N'true'
exec sp_dboption N'Test', N'ANSI null default', N'false'
exec sp_dboption N'Test', N'recursive triggers', N'false'
exec sp_dboption N'Test', N'ANSI nulls', N'false'
exec sp_dboption N'Test', N'concat null yields null', N'false'
exec sp_dboption N'Test', N'cursor close on commit', N'false'
exec sp_dboption N'Test', N'default to local cursor', N'false'
exec sp_dboption N'Test', N'quoted identifier', N'false'
exec sp_dboption N'Test', N'ANSI warnings', N'false'
exec sp_dboption N'Test', N'auto create statistics', N'true'
exec sp_dboption N'Test', N'auto update statistics', N'true'
use [Test]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_name]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tb_name]
if not exists (select * from master.dbo.syslogins where loginname = N'etmam')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'hometools', @loginlang = N'us_english'
if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')
select @loginlang = @@language
exec sp_addlogin N'etmam', null, @logindb, @loginlang
END
exec sp_addsrvrolemember N'etmam', sysadmin
exec sp_addsrvrolemember N'etmam', securityadmin
exec sp_addsrvrolemember N'etmam', serveradmin
exec sp_addsrvrolemember N'etmam', setupadmin
exec sp_addsrvrolemember N'etmam', processadmin
exec sp_addsrvrolemember N'etmam', diskadmin
exec sp_addsrvrolemember N'etmam', dbcreator
exec sp_addsrvrolemember N'etmam', bulkadmin
if not exists (select * from dbo.sysusers where name = N'etmam' and uid < 16382)
EXEC sp_grantdbaccess N'etmam', N'etmam'
exec sp_addrolemember N'db_owner', N'etmam'
CREATE TABLE [dbo].[tb_name] (
[ID] [int] NOT NULL ,
[Family] [nvarchar] (30) COLLATE Arabic_CI_AS NOT NULL ,
[Name] [nvarchar] (30) COLLATE Arabic_CI_AS NULL
) ON [PRIMARY]
ALTER TABLE [dbo].[tb_name] WITH NOCHECK ADD
CONSTRAINT [PK_tb_name] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
:roll:
وقتی هم می خواهم Active آن را True کنم با خطای زیر مواجه می شوم: