Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто изучал C# по Троелсену? В SQL Server не могу запустить скрипт. 
V
    Опции темы
DrunkProgrammer
Дата 16.1.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Доброе время суток!
Читаю "Язык программирования C# 2005 и платформа .NET 2.0", но натолкнулся на лажу с SQL Server (глава 22). 
Когда пытаюсь выполнить скрипт из файла CarsDatabase.sql, выходит следующая дурь:
Msg 1802, Level 16, State 4, Line 2
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Msg 5123, Level 16, State 1, Line 2
CREATE FILE encountered operating system error 5(Отказано в доступе.) while attempting to open or create the physical file 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data'.
Msg 911, Level 16, State 1, Line 1
Could not locate entry in sysdatabases for database 'Cars'. No entry found with that name. Make sure that the name is entered correctly.
Msg 4902, Level 16, State 1, Line 2
Cannot find the object "dbo.Customers" because it does not exist or you do not have permissions.
Msg 1767, Level 16, State 0, Line 2
Foreign key 'FK_Orders_Customers' references invalid table 'dbo.Customers'.
Msg 1750, Level 16, State 0, Line 2
Could not create constraint. See previous errors.
Msg 911, Level 16, State 1, Line 1
Could not locate entry in sysdatabases for database 'Cars'. No entry found with that name. Make sure that the name is entered correctly.


Может кто сталкивался с такой хренью?
PM MAIL   Вверх
farad
Дата 16.1.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 1.11.2007

Репутация: -1
Всего: 6



Возможно недостаточно прав, а возможно версия сервера и скрипта не совпадают..
PM MAIL   Вверх
Любитель
Дата 16.1.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Скрипт сам покажи smile


--------------------
PM MAIL ICQ Skype   Вверх
DrunkProgrammer
Дата 16.1.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Код

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Customers
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Inventory]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Inventory
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPetName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[GetPetName]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Orders]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Customers]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Inventory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Inventory]
GO

CREATE DATABASE [Cars]  ON (NAME = N'Cars_Data', FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data' , 
SIZE = 3, FILEGROWTH = 10%) 

LOG ON (NAME = N'Cars_Log', FILENAME= N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Log.LDF' , 
SIZE = 1, FILEGROWTH = 10%)
GO
use[Cars]
CREATE TABLE [dbo].[Customers] (
    [FirstName] [char] (20) NULL ,
    [LastName] [char] (20) NULL ,
    [CustID] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Inventory] (
    [CarID] [int] NOT NULL ,
    [Make] [char] (20) NULL ,
    [Color] [char] (20) NULL ,
    [PetName] [char] (20) NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Orders] (
    [OrderID] [int] NOT NULL ,
    [CarID] [int] NULL ,
    [CustID] [int] NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Customers] WITH NOCHECK ADD 
    CONSTRAINT [PK_Customers] PRIMARY KEY  CLUSTERED 
    (
        [CustID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Inventory] WITH NOCHECK ADD 
    CONSTRAINT [PK_Inventory] PRIMARY KEY  CLUSTERED 
    (
        [CarID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD 
    CONSTRAINT [PK_Orders] PRIMARY KEY  CLUSTERED 
    (
        [OrderID]
    )  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[Orders] ADD 
    CONSTRAINT [FK_Orders_Customers] FOREIGN KEY 
    (
        [CustID]
    ) REFERENCES [dbo].[Customers] (
        [CustID]
    ),
    CONSTRAINT [FK_Orders_Inventory] FOREIGN KEY 
    (
        [CarID]
    ) REFERENCES [dbo].[Inventory] (
        [CarID]
    )
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO


CREATE PROCEDURE GetPetName
@carID int,
@petName char(20) output

AS

SELECT @petName = PetName from Inventory where CarID = @carID


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
use[Cars]
INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (0, 'BMW', 'Red', 'Chucky')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (1, 'BMW', 'Green', 'Snake')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (2, 'Viper', 'Red', 'Zippy')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (3, 'BMW', 'Pink', 'Buddha')
GO

INSERT INTO Inventory (carID, Make, Color, PetName)
VALUES (4, 'Colt', 'Rust', 'Rusty')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (0, 'Mike', 'Larson')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (1, 'Amy', 'Smith')
GO

INSERT INTO Customers (custID, FirstName, LastName)
VALUES (2, 'Kandi', 'Nash')
GO

INSERT INTO Orders (orderID, custID, carID)
VALUES (0, 0, 0)
GO

INSERT INTO Orders (orderID, custID, carID)
VALUES (1, 1, 4)
GO



Это сообщение отредактировал(а) mr.DUDA - 16.1.2008, 13:56
PM MAIL   Вверх
Любитель
Дата 16.1.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(DrunkProgrammer @  16.1.2008,  13:02 Найти цитируемый пост)
, FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data'

Попробуй вообще бех этого - пусть дефолтные пути хватает.


--------------------
PM MAIL ICQ Skype   Вверх
DrunkProgrammer
Дата 16.1.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Попробовал, начинает ругаться на следующую строчку, когда и ее заремировал, то заругался на следующую после Go строку:
Could not locate entry in sysdatabases for database 'Cars'. No entry found with that name. Make sure that the name is entered correctly.
PM MAIL   Вверх
IApple
Дата 18.1.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



1) вот этот кусок:

CREATE DATABASE [Cars]  ON (NAME = N'Cars_Data', FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data' , 
SIZE = 3, FILEGROWTH = 10%) 

LOG ON (NAME = N'Cars_Log', FILENAME= N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Log.LDF' , 
SIZE = 1, FILEGROWTH = 10%)
GO
use[Cars]

здается мне, сидит не на своем месте - ему б в самом начале быть.

2) именно с этих команд ошибки начинаются, проверь существует ли вообще путь C:\Program Files\Microsoft SQL Server\MSSQL\Data\
   а если существует, то возможно там уже есть файлы (Cars*.*) и поэтому невозможно их повторно создать (попробуй удалить).

PM MAIL   Вверх
DrunkProgrammer
Дата 21.1.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Ребята, просьба ответить тем, кто работал с SQL Server, а то такое ощущение, что иногда ответчают просто ради участия. Тут, насколько я понял дело с правами на папку, там даже в сообщении есть:  "Отказано в доступе", по крайней мере это то, что я надыбал на англоязычных сайтах. Но не смотря на полные права на папку для всех пользователей, все равно ничего не помогает.

Это сообщение отредактировал(а) DrunkProgrammer - 21.1.2008, 12:33
PM MAIL   Вверх
IApple
Дата 21.1.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Msg 5123, Level 16, State 1, Line 2
CREATE FILE encountered operating system error 5(Отказано в доступе.) while attempting to open or create the physical file 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data'.

Варианты действий:

1) Проверь, существуют ли в указаной папке сами файлы базы даных. Если существуют, то попробуй их удалить (указаный скрипт их должен поидее наново создать, так что не жалко).

2) если действительно не хватает прав на папку, так поменяй в скрипте этот длиннющий путь, на что-то покороче, типа D:\TMP... который ты сам создал и права все есть (заодно потом будеш знать че удалять опосля).
PM MAIL   Вверх
DrunkProgrammer
Дата 22.1.2008, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Нет файла базы, я собственно и хочу запустить скрипт, чтобы его создать. Папку менял - в корне диска D создавал и ставил полные права. Нихрена не помогает.
PM MAIL   Вверх
DrunkProgrammer
Дата 22.1.2008, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 23.10.2007
Где: Омск

Репутация: 1
Всего: 1



Короче, попарившись вдоволь, взял и средствами SQL Server создал пустую базу Cars, потом немного изменив строку LOG ON (NAME = N'Cars_Log', FILENAME= N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Log.LDF' ,  SIZE = 1, FILEGROWTH = 10%) запустил скрипт и все ОК.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.