PDA

View Full Version : سوال: اجرا نشدن اسکریپت باWebAdminدر Plesk



sadegh.rj
جمعه 29 شهریور 1387, 19:55 عصر
با سلام
در کنترل پلسک بعد از ایجاد دیتابیس وقتی که Script سازنده جدولها را در webAdmin اجرا میکنم هیچ اتفاقی نمیافته!؟ نه جدولی اضافه میشه نه اروری!
اساتید محترم لطفا راهنمای کنند.
مثلا اسکریپت زیر در سیستم خودم باعث ایجاد یک جدول میشه ولی در سرور هیچ...:افسرده:


USE [test1]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T1](
[id] [int] NOT NULL,
[name] [nvarchar](50) NULL,
CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Chabok
شنبه 30 شهریور 1387, 12:28 عصر
با سلام
WebAdmin که در Plesk هست زیاد دستورات SQL مخصوصا اونایی که در 2005 هست رو حالیش نیست .

بهتره خودتون به صورت Remote به سرور وصل بشید . توسط Management Studio SQL Server .

نام سرور رو هم میتونید بصورت زیر وارد کنید :
mssql.site.com
www.site.com

یک تاپیک مشابه :
http://barnamenevis.org/forum/showthread.php?t=80646

موفق باشید . خدانگهدار

sadegh.rj
یک شنبه 31 شهریور 1387, 00:19 صبح
بعد از حذف دستور GO از کدها مشکل حل شد

sadegh.rj
سه شنبه 02 مهر 1387, 14:00 عصر
با حذف GO دستورات ساختن جدول اجرا شد ولی حالا برای ساختن SP به مشکل برخوردم
چون نمیتونم ریموت وصل بشم لازمه که دیتابیسو از طریق کوئری در هاست بسازم.
آیا دستورات که در WebAdmin اجرا میشه با Sql معمولی فرق داره ؟:متفکر:
چون رو سیستم خودم جواب میده ولی در هاست متفاوته!!!
اساتید محترم لطفا راهنمایی کنند. یک هفته است رو این ساختن و آپلود دیتابیس گیر افتادم:عصبانی++:

Chabok
سه شنبه 02 مهر 1387, 15:02 عصر
با سلام

من هم با وب ادمین پلسک مشکل داشتم .

به نظرم تنها راهی که مونده اینه که یک صفحه طراحی کنید که یک تکست باکس مولتی لاین داشته باشه و یک کلید .

و بیایید متن تکست باکس رو روی سرور Execute کنید .
با آپلود کردن این صفحه میتونید کوئری های خودتون رو روی سرور اجرا کنید .

موفق باشید . خدانگهدار

dr.pantagon
سه شنبه 02 مهر 1387, 15:59 عصر
اگر تحت وب بخوای که به قول دوست مون باید یک پیج بسازی و این کار رو بکنی

می تونی بدی به ادمین سرور تا برای ایجاد کنه (90% ادمین سرور ها بلد نیستن :لبخند: )

می تونی هم مثل من خیلی راحت از Query Analyzer استفاده کنی و اسکریپت رو روی دیتابیس سرور اجرا کنی.

mahdi_farhani
سه شنبه 02 مهر 1387, 16:12 عصر
برای کارت راحت بشه از این استفاده کن ، خیلی ساده نوشته شده فقط برای تست بوده .
یه صفحست که نام سرور ، یوزر نیم ، پسورد ، نام دیتا بیس و اسکریپت رو میگره و برات اجراش میکنه
مزیت استفاده از این اینه که با SQL2005 مشکل نداره ، چندتا اسکریپت رو همزمان میتونی با یک دستور اجرا کنی ، کاری که تو WebAdmin به سختی میتونی اینکارو بکنی

sadegh.rj
چهارشنبه 03 مهر 1387, 00:36 صبح
با تشکر از راهنمایی شما .
دستورات موقع اجرا با برنامه شما ارور میده ولی خیلی خوبه که میشه خطای برنامه رو دید و برطرف کرد.(البته با Query Analyzer خطا نداره!)
وقتی چند SP پشت سر هم نوشته میشه ارور میده ولی با یک SP مشکلی نداره.
خطا :

Incorrect syntax near the keyword 'PROCEDURE'

مثال :



CREATE PROCEDURE [dbo].[usp_Get_SiteSetting]
AS
/* SET NOCOUNT ON */
SELECT * FROM [siteSetting]
RETURN

CREATE PROCEDURE [dbo].[usp_Getparent]
@id int
AS
/* SET NOCOUNT ON */
SELECT [id], [title], [title_en], [parentCategoryId] FROM [Category] WHERE ([Id] = @id)
RETURN

mahdi_farhani
چهارشنبه 03 مهر 1387, 01:28 صبح
اینو امتحان کن

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[cms_AccessLevel_Insert]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

CREATE Procedure [dbo].[cms_AccessLevel_Insert]
(
@acl_Id Int Output ,
@Rol_Id Int,
@acl_Type Int,
@acl_Content Int,
@acl_Insert bit,
@acl_Update bit,
@acl_Delete bit,
@acl_Show bit
)
AS
Insert Into tbl_AccessLevel
(
Rol_Id ,
acl_Type ,
acl_Content ,
acl_Insert ,
acl_Update ,
acl_Delete ,
acl_Show
)
Values
(
@Rol_Id ,
@acl_Type ,
@acl_Content ,
@acl_Insert ,
@acl_Update ,
@acl_Delete ,
@acl_Show
)
set @acl_Id=@@Identity

'
END

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[cms_AccessLevel_Select]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE Procedure [dbo].[cms_AccessLevel_Select]
(
@rol_ID int
)
AS
Select * From tbl_AccessLevel where rol_id=@rol_id'
END

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[cms_AccessLevel_Update]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE Procedure [dbo].[cms_AccessLevel_Update]
(
@acl_Id Int,
@Rol_Id Int,
@acl_Type Int,
@acl_Content Int,
@acl_Insert bit,
@acl_Update bit,
@acl_Delete bit,
@acl_Show bit
)
AS
Update tbl_AccessLevel
Set
Rol_Id =@Rol_Id,
acl_Type =@acl_Type,
acl_Content =@acl_Content,
acl_Insert =@acl_Insert,
acl_Update =@acl_Update,
acl_Delete =@acl_Delete,
acl_Show =@acl_Show
Where acl_Id = @acl_Id'
END

mahdi_farhani
چهارشنبه 03 مهر 1387, 08:48 صبح
در ضمن اگر یه ; بعد از هر SP یا هر دستور بزاری مشکلت حل میشه

sadegh.rj
چهارشنبه 03 مهر 1387, 13:21 عصر
با تشکر فراوان از راهنمایی شما مطابق کدهایی که نوشتید با افزودن


EXEC dbo.sp_executesql @statement = N'
در ابتدای هر SP مشکل حل شد.