PDA

View Full Version : Deploy کردن JalaliDate توسط #C



mehr83
یک شنبه 23 دی 1386, 22:27 عصر
توی نت که سرچ میکردم این کد رو نوشته بودن که بایستی Deploy بشه و بعدش دیتا تایپ JalaliDate به Sql Server اضافه میشه.


using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Globalization;

[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Form at.Native)]
public struct JalaliDate : INullable
{
public override string ToString()
{
if (m_Null)
{
return "";
}
else
{
return string.Format("{0}-{1}-{2}", year, month, day);
}
}

public bool IsNull
{
get
{
// Put your code here
return m_Null;
}
}

public static JalaliDate Null
{
get
{
JalaliDate h = new JalaliDate();
h.m_Null = true;
return h;
}
}

public static JalaliDate Parse(SqlString s)
{
if (string.IsNullOrEmpty(s.Value))
return JalaliDate.Null;
JalaliDate u = new JalaliDate();
string[] values = s.Value.Split(new char[] { '-' });
u.year = int.Parse(values[0]);
u.month = int.Parse(values[1]);
u.day = int.Parse(values[2]);
// Put your code here
return u;
}

public DateTime GregorianValue
{
get
{
PersianCalendar pc = new PersianCalendar();
DateTime dt = new DateTime(year, month, day, pc);
return dt;
}
}

public static JalaliDate JalaliValue(DateTime gregorianValue)
{
PersianCalendar pc = new PersianCalendar();
int y, m, d;
y = pc.GetYear(gregorianValue);
m = pc.GetMonth(gregorianValue);
d = pc.GetDayOfMonth(gregorianValue);
JalaliDate ans = new JalaliDate();
ans.year = y;
ans.month = m;
ans.day = d;
return ans;
}

public JalaliDate AddDays(int days)
{
return JalaliValue(GregorianValue.AddDays(day));
}

private int year;
private int month;
private int day;

// Private member
private bool m_Null;

من بلد نیستم چطوری باید deploy کنم
نمیدونم این کد هم واقعا درست کار می کنه یا نه
بعدشم اگه دیتابیس رو رو یه سیستم دیگه رستور کنیم مشکلی پیش نمیاد؟
ممنون میشم کمکم کنید

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

mohammad272005
یک شنبه 23 دی 1386, 23:11 عصر
آیا نوع پروژة شما SQL Server Project هست؟ اگه هست که با یه F5، خودش deploy می‏شه.

mehr83
یک شنبه 23 دی 1386, 23:17 عصر
اصلا نمنیدونم باید چیکار کنم
چه نوع پرو‍ژ‌ه‌ای ایجاد کنم
کد رو کجا بنویسم؟

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

mohammad272005
یک شنبه 23 دی 1386, 23:44 عصر
مسیر زیر رو برید:New > Project > Database Projects > Microsoft SQL Server > SQL-CLR > SQL Server Projectاگه قبلا connectionی تو VS ساخته باشین، میگه connectionتون رو انتخاب کنین. در غیراینصورت، ازتون می خواد یه connection جدید بسازید. حالا یه User Defined Type به پروژه اضافه کنید و کدتون را اونجا paste کنید. حالا به F5 بسادگی Deploy می‏شه.

mehr83
دوشنبه 24 دی 1386, 00:03 صبح
وقتی توی SqlServe تایپ رو JalaliDate انتخاب می کنم
خطا میده و میگه باید CLR رو Enable کنید.
چیکار باید بکنم؟

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

mohammad272005
دوشنبه 24 دی 1386, 00:21 صبح
در View > Server Explorer رو connectionتون right click کنید و Application Debugging و Allow Clr/SQL Debugging رو تیک بزنین.

mehr83
دوشنبه 24 دی 1386, 00:41 صبح
تیکش از قبل وجود داشت
اما باز همون خطا رو میده

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

mohammad272005
دوشنبه 24 دی 1386, 02:18 صبح
متاسفانه VS من 2008 هست که بصورت پیش‏فرض CLR Debugging فعال هست. ولی تو 2005 نیست. توی 2005 برای اینکار دوتا راه داره.
1- زمانیکه برای پروژه رو ایجاد میکنید میپرسه که CLR Debugging فعال کنم؟ شما میگید بله
2- بعد از ساخت، روی پروژه Right Click کنید و Properties بگیرید. توی pageها یه جایی بود که تو همین مایه‏های Enable CLR Debugging بود. اونو تیک بزنید.

mehr83
دوشنبه 24 دی 1386, 11:25 صبح
همین کار رو می کنم
اصلا بدون فعال کردن CLR
Debug نمیشه
اما تو Sql Server که می خوام جدول رو باز کنم میگه CLR فعال نیست

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

سار
دوشنبه 24 دی 1386, 14:13 عصر
درون SQL Server اجرا کنید



EXEC sp_configure ‘clr enabled’ , ‘1′
go
reconfigure;
go

mehr83
دوشنبه 24 دی 1386, 17:14 عصر
کجای Sql Server باید این کد رو بنویسم و اجرا کنم؟
میشه بیشتر توضیح بدین؟

sinpin
دوشنبه 24 دی 1386, 23:20 عصر
کجای Sql Server باید این کد رو بنویسم و اجرا کنم؟
میشه بیشتر توضیح بدین؟
Query Analyzer

سار
سه شنبه 25 دی 1386, 09:49 صبح
من کدتون رو تست ، نوع جدید ساخته میشه ولی چطور باید باهاش کار کرد!!!
فکر نمیکنم خیلی خوب باشه یعنی راستش یا من نتونستم باهاش کار کنم یا این کد کد جالبی نیست چون نمیتونه بین 01-01-1386 و 1-1-1386 تشخیص بده که این دو برابر هستن در واقع Stringی عمل میکنه نه تاریخی.