bad_boy_2007
جمعه 19 تیر 1388, 00:22 صبح
سلام دوستان
یه چند وقتی هست که از یک سری کوئری و ویو استفاده میکنم و تا الان هیچ مشکلی نداشتم ، تا اینکه اومدم و یک اسکریپت از دیتابیس گرفتم و یک دیتابیس جدید ایجاد کردم .
و حالا با این مشکل برخوردم که 2 تا از ویو هام کار نمیکنن
یکی از ویو هام کوئریش اینه :
SELECT dbo.ReceptionCheck.ID, dbo.ReceptionCheck.BankName, dbo.ReceptionCheck.Price, dbo.ReceptionCheck.Status, dbo.CheckState.Name AS STName,
dbo.Civil2Persian(dbo.Reception.Date) AS DateSanad, dbo.Reception.Date AS DateSanadM, dbo.Civil2Persian(dbo.ReceptionCheck.Date)
AS DateCheck, dbo.ReceptionCheck.Date AS DateCheckM, dbo.Civil2Persian(dbo.CheckMBargasht.Date) AS DateBargashtORVosol,
dbo.CheckMBargasht.Date AS DateBargashtORVosolM, RTRIM(ISNULL(dbo.Civil2Persian(dbo.SandoghCheck.Da te), ''))
+ RTRIM(ISNULL(dbo.Civil2Persian(dbo.BankCheck.Date) , '')) AS DateToPlace, dbo.VCustomers.fullname AS CustomerFullname,
RTRIM(ISNULL(dbo.Sandogh.Name, '')) + RTRIM(ISNULL(dbo.Bank_hesab.name, '')) + RTRIM(ISNULL(VCustomers_1.fullname, '')) AS Place,
dbo.Reception.Description, dbo.ReceptionCheck.Number, dbo.ReceptionCheck.IDSanad, dbo.PardakhtCheckM.IDSanad AS PardakhtID,
dbo.ReceptionCheck.Personal, dbo.ReceptionCheck.HesabNum
FROM dbo.VCustomers RIGHT OUTER JOIN
dbo.Reception ON dbo.VCustomers.ID = dbo.Reception.IDCustomer RIGHT OUTER JOIN
dbo.ReceptionCheck ON dbo.Reception.ID = dbo.ReceptionCheck.IDSanad LEFT OUTER JOIN
dbo.SandoghCheck ON dbo.SandoghCheck.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.Sandogh ON dbo.Sandogh.ID = dbo.SandoghCheck.IDSandogh LEFT OUTER JOIN
dbo.BankCheck ON dbo.BankCheck.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.Bank_hesab ON dbo.BankCheck.IDBank = dbo.Bank_hesab.id LEFT OUTER JOIN
dbo.CheckState ON dbo.CheckState.ID = dbo.ReceptionCheck.Status LEFT OUTER JOIN
dbo.PardakhtCheckM ON dbo.ReceptionCheck.ID = dbo.PardakhtCheckM.IDCheck LEFT OUTER JOIN
dbo.Pardakht ON dbo.PardakhtCheckM.IDSanad = dbo.Pardakht.ID LEFT OUTER JOIN
dbo.CheckMBargasht ON dbo.CheckMBargasht.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.VCustomers AS VCustomers_1 ON dbo.Pardakht.IDCustomer = VCustomers_1.ID
وقتی که اسکریپت ایجاد دیتابیس رو اجرا میکنم بدون خطا ویو رو ایجاد میکنه ولی ویو باز نمیشه و خطا میده ، و بعد از اون هم که سعی میکنم کد بالا رو اجرا کنم خطای زیر رو میده :
Msg 451, Level 16, State 1, Line 1
Cannot resolve collation conflict for column 14 in SELECT statement.
و اونطوری که معلومه مشکل از VCustomers.FullName هست ، چون با حذفش مشکل رفع میشه !!!
این هم کدهای VCustomers :
SELECT dbo.FixString(dbo.CustomersTitle.Name + ' ' + dbo.CUSTOMERS.NAME + ' ' + dbo.CUSTOMERS.FAMILY) AS fullname,
dbo.FixString(dbo.CUSTOMERS.NAME) AS Name, dbo.FixString(dbo.CUSTOMERS.FAMILY) AS Family, dbo.CUSTOMERS.ID, dbo.CUSTOMERS.STATUS,
dbo.CUSTOMERS.ACCOUNT_FIRST, dbo.CUSTOMERS.Account, dbo.FixString(dbo.CUSTOMERS.DESCRIPTION) AS Description,
dbo.FixString(dbo.CUSTOMERS.ADD1) AS ADD1, dbo.FixString(dbo.CUSTOMERS.ADD2) AS ADD2, dbo.CUSTOMERS.MOB1, dbo.CUSTOMERS.MOB2,
dbo.CUSTOMERS.TEL1, dbo.CUSTOMERS.TEL2, dbo.CUSTOMERS.FAX, dbo.CUSTOMERS.ZIP, dbo.FixString(dbo.Coustomers_group.name)
AS group_name, dbo.CUSTOMERS.ID_GROUP, dbo.FixString(dbo.CustomersTitle.Name) AS TitleName, dbo.CUSTOMERS.Date,
dbo.CUSTOMERS.Title
FROM dbo.CUSTOMERS INNER JOIN
dbo.Coustomers_group ON dbo.CUSTOMERS.ID_GROUP = dbo.Coustomers_group.id INNER JOIN
dbo.CustomersTitle ON dbo.CUSTOMERS.Title = dbo.CustomersTitle.ID
حالا سوال اینه که اول از همه مشکل کجاست ؟
ثانیا چرا تا الان پیش نیومده بود ؟؟
یه چند وقتی هست که از یک سری کوئری و ویو استفاده میکنم و تا الان هیچ مشکلی نداشتم ، تا اینکه اومدم و یک اسکریپت از دیتابیس گرفتم و یک دیتابیس جدید ایجاد کردم .
و حالا با این مشکل برخوردم که 2 تا از ویو هام کار نمیکنن
یکی از ویو هام کوئریش اینه :
SELECT dbo.ReceptionCheck.ID, dbo.ReceptionCheck.BankName, dbo.ReceptionCheck.Price, dbo.ReceptionCheck.Status, dbo.CheckState.Name AS STName,
dbo.Civil2Persian(dbo.Reception.Date) AS DateSanad, dbo.Reception.Date AS DateSanadM, dbo.Civil2Persian(dbo.ReceptionCheck.Date)
AS DateCheck, dbo.ReceptionCheck.Date AS DateCheckM, dbo.Civil2Persian(dbo.CheckMBargasht.Date) AS DateBargashtORVosol,
dbo.CheckMBargasht.Date AS DateBargashtORVosolM, RTRIM(ISNULL(dbo.Civil2Persian(dbo.SandoghCheck.Da te), ''))
+ RTRIM(ISNULL(dbo.Civil2Persian(dbo.BankCheck.Date) , '')) AS DateToPlace, dbo.VCustomers.fullname AS CustomerFullname,
RTRIM(ISNULL(dbo.Sandogh.Name, '')) + RTRIM(ISNULL(dbo.Bank_hesab.name, '')) + RTRIM(ISNULL(VCustomers_1.fullname, '')) AS Place,
dbo.Reception.Description, dbo.ReceptionCheck.Number, dbo.ReceptionCheck.IDSanad, dbo.PardakhtCheckM.IDSanad AS PardakhtID,
dbo.ReceptionCheck.Personal, dbo.ReceptionCheck.HesabNum
FROM dbo.VCustomers RIGHT OUTER JOIN
dbo.Reception ON dbo.VCustomers.ID = dbo.Reception.IDCustomer RIGHT OUTER JOIN
dbo.ReceptionCheck ON dbo.Reception.ID = dbo.ReceptionCheck.IDSanad LEFT OUTER JOIN
dbo.SandoghCheck ON dbo.SandoghCheck.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.Sandogh ON dbo.Sandogh.ID = dbo.SandoghCheck.IDSandogh LEFT OUTER JOIN
dbo.BankCheck ON dbo.BankCheck.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.Bank_hesab ON dbo.BankCheck.IDBank = dbo.Bank_hesab.id LEFT OUTER JOIN
dbo.CheckState ON dbo.CheckState.ID = dbo.ReceptionCheck.Status LEFT OUTER JOIN
dbo.PardakhtCheckM ON dbo.ReceptionCheck.ID = dbo.PardakhtCheckM.IDCheck LEFT OUTER JOIN
dbo.Pardakht ON dbo.PardakhtCheckM.IDSanad = dbo.Pardakht.ID LEFT OUTER JOIN
dbo.CheckMBargasht ON dbo.CheckMBargasht.IDCheck = dbo.ReceptionCheck.ID LEFT OUTER JOIN
dbo.VCustomers AS VCustomers_1 ON dbo.Pardakht.IDCustomer = VCustomers_1.ID
وقتی که اسکریپت ایجاد دیتابیس رو اجرا میکنم بدون خطا ویو رو ایجاد میکنه ولی ویو باز نمیشه و خطا میده ، و بعد از اون هم که سعی میکنم کد بالا رو اجرا کنم خطای زیر رو میده :
Msg 451, Level 16, State 1, Line 1
Cannot resolve collation conflict for column 14 in SELECT statement.
و اونطوری که معلومه مشکل از VCustomers.FullName هست ، چون با حذفش مشکل رفع میشه !!!
این هم کدهای VCustomers :
SELECT dbo.FixString(dbo.CustomersTitle.Name + ' ' + dbo.CUSTOMERS.NAME + ' ' + dbo.CUSTOMERS.FAMILY) AS fullname,
dbo.FixString(dbo.CUSTOMERS.NAME) AS Name, dbo.FixString(dbo.CUSTOMERS.FAMILY) AS Family, dbo.CUSTOMERS.ID, dbo.CUSTOMERS.STATUS,
dbo.CUSTOMERS.ACCOUNT_FIRST, dbo.CUSTOMERS.Account, dbo.FixString(dbo.CUSTOMERS.DESCRIPTION) AS Description,
dbo.FixString(dbo.CUSTOMERS.ADD1) AS ADD1, dbo.FixString(dbo.CUSTOMERS.ADD2) AS ADD2, dbo.CUSTOMERS.MOB1, dbo.CUSTOMERS.MOB2,
dbo.CUSTOMERS.TEL1, dbo.CUSTOMERS.TEL2, dbo.CUSTOMERS.FAX, dbo.CUSTOMERS.ZIP, dbo.FixString(dbo.Coustomers_group.name)
AS group_name, dbo.CUSTOMERS.ID_GROUP, dbo.FixString(dbo.CustomersTitle.Name) AS TitleName, dbo.CUSTOMERS.Date,
dbo.CUSTOMERS.Title
FROM dbo.CUSTOMERS INNER JOIN
dbo.Coustomers_group ON dbo.CUSTOMERS.ID_GROUP = dbo.Coustomers_group.id INNER JOIN
dbo.CustomersTitle ON dbo.CUSTOMERS.Title = dbo.CustomersTitle.ID
حالا سوال اینه که اول از همه مشکل کجاست ؟
ثانیا چرا تا الان پیش نیومده بود ؟؟