สรุป
บทความนี้อธิบายต่อไปนี้เกี่ยวกับการนำโปรแกรมแก้ไขด่วนนี้:
-
การตัดสินค้าจากคลังที่คงที่ ด้วยแพคเกจโปรแกรมแก้ไขด่วน
-
การข้อกำหนดเบื้องต้นสำหรับการติดตั้งแพคเกจโปรแกรมแก้ไขด่วน
-
ว่าคุณต้องรีสตาร์ทเครื่องคอมพิวเตอร์หลังจากที่คุณติดตั้งแพคเกจโปรแกรมแก้ไขด่วน
-
ว่าแพคเกจโปรแกรมแก้ไขด่วนถูกแทนที่ ด้วยแพคเกจโปรแกรมแก้ไขด่วนอื่น ๆ
-
ว่าคุณต้องทำการเปลี่ยนแปลงรีจิสทรี
-
แฟ้มที่มีอยู่ในแพคเกจโปรแกรมแก้ไขด่วน
อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้ โปรแกรมประยุกต์ใช้ Microsoft ADO.NET เอนทิตีกรอบที่รวมอยู่ในการ Microsoft .NET Framework 3.5 Service Pack 1 เพื่อเข้าถึงฐานข้อมูล Microsoft SQL Server 3.5 แบบกระชับ ในแอพลิเคชัน เรียกใช้ "LINQ กับเอนทิตี" แบบสอบถามที่ใช้พารามิเตอร์สตริงการหรือพารามิเตอร์ไบนารีกับฐานข้อมูล ในสถานการณ์สมมตินี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณเรียกใช้แอพลิเคชัน:
ไม่สามารถใช้ชนิดข้อมูล ntext และรูปในซึ่ง HAVING, GROUP BY หรือ ในส่วนคำ สั่ง ยกเว้นเมื่อมีใช้ชนิดข้อมูลเหล่านี้ มีลักษณะเหมือน หรือเป็นเพรดิเคต NULL
สาเหตุ
เมื่อคุณใช้พารามิเตอร์สำหรับแบบสอบถาม "LINQ กับเอนทิตี" ในแอพลิเคชัน คุณไม่สามารถระบุชนิดของฐานข้อมูลพื้นฐาน ตัวให้บริการ SQL Server แบบกระชับเอนทิตีกรอบการทำงานพยายามสร้างพารามิเตอร์ระดับการให้บริการตาม facets เอนทิตีข้อมูลแบบจำลอง (EDM) ของพารามิเตอร์เดิม กระชับข้อมูลของ SQL Server ไม่สนับสนุนชนิดข้อมูลnvarchar(max)หรือชนิดข้อมูลแบบvarbinary(max) ดังนั้นจึง เมื่อผู้ให้บริการที่เลือกเป็นชนิดข้อมูลสำหรับพารามิเตอร์ ของชนิดข้อมูลแบบEdm.Stringหรือชนิดข้อมูลEdm.Binaryผู้ให้บริการที่มีการทำเครื่องหมายพารามิเตอร์เป็นชนิดข้อมูลต่อไปนี้ตาม facets EDM ของพารามิเตอร์:
-
สำหรับพารามิเตอร์สตริ ผู้ให้บริการที่เลือกชนิดข้อมูลnvarchar(4000)หรือชนิดข้อมูลntext
-
สำหรับพารามิเตอร์ไบนารี ผู้ให้บริการที่เลือกชนิดข้อมูลvarbinary(4000)หรือชนิดข้อมูลรูป
ถ้าผู้ให้บริการที่ทำเครื่องหมายพารามิเตอร์ เป็นชนิดข้อมูลnvarchar(4000)หรือ เป็นชนิดข้อมูลvarbinary(4000)ข้อผิดพลาดเกิดขึ้นเมื่อคุณพยายามที่จะแทรกค่าที่มีขนาดใหญ่กว่าถึง 8000 ไบต์ นอกจากนี้ ถ้าผู้ให้บริการที่ทำเครื่องหมายพารามิเตอร์ เป็นชนิดข้อมูลntextหรือ เป็นข้อมูลชนิดรูปข้อผิดพลาดเกิดขึ้นหากใด ๆ เท่ากันการดำเนินงาน การดำเนินงานที่จัดกลุ่ม หรือเรียงลำดับการดำเนินการกำลังดำเนินการในพารามิเตอร์
การแก้ปัญหา
ข้อมูลโปรแกรมแก้ไขด่วน
มีโปรแกรมแก้ไขด่วนที่รองรับพร้อมให้บริการจาก Microsoft อย่างไรก็ตาม โปรแกรมแก้ไขด่วนนี้มุ่งหวังเพื่อการแก้ไขเฉพาะปัญหาที่อธิบายไว้ในบทความนี้ ใช้การแก้ไขด่วนนี้กับระบบต่าง ๆ ที่พบปัญหาอธิบายไว้ในบทความนี้เท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบจากปัญหานี้รุนแรง เราขอแนะนำให้ คุณรอการปรับปรุงซอฟต์แวร์ถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้
หากโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด คุณจะเห็นส่วน "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" ที่ด้านบนของบทความฐานข้อมูลองค์ความรู้นี้ หากส่วนนี้ไม่ปรากฏขึ้น ติดต่อฝ่ายสนับสนุนและบริการลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน
หมายเหตุ ถ้ามีปัญหาอื่น ๆ เกิดขึ้น หรือถ้าจำเป็นต้องแก้ไขปัญหาใด ๆ คุณอาจต้องสร้างคำขอรับบริการแยกต่างหาก จะมีค่าใช้จ่ายในการสนับสนุนปกติกับคำถามเพิ่มเติมและเรื่องอื่น ๆ ที่ไม่มีสิทธิได้รับโปรแกรมแก้ไขด่วนเฉพาะนี้ สำหรับรายการหมายเลขโทรศัพท์ฉบับสมบูรณ์ของฝ่ายบริการลูกค้าและการสนับสนุนของ Microsoft หรือเพื่อสร้างคำขอรับบริการแยกต่างหาก แวะไปที่เว็บไซต์ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ แบบฟอร์ม "มีโปรแกรมแก้ไขด่วนพร้อมสำหรับการดาวน์โหลด" แสดงภาษาที่โปรแกรมแก้ไขด่วนพร้อมใช้งาน ถ้าคุณไม่เห็นภาษาของคุณ อาจเป็น เพราะไม่มีโปรแกรมแก้ไขด่วนพร้อมใช้งานสำหรับภาษานั้น
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องถอนการติดตั้งไว้ก่อนหน้า SQL Server แบบกระชับ 3.5 Service Pack 1 การติดตั้งแฟ้ม.msi ที่ให้ไว้ โดยโปรแกรมแก้ไขด่วนนี้ ถ้าคุณถอนการติดตั้งติดตั้งไว้ก่อนหน้า SQL Server แบบกระชับ 3.5 Service Pack 1 คุณได้รับข้อผิดพลาดการติดตั้งที่ระบุว่า ติดตั้งรุ่นที่ใหม่กว่า SQL Server กระชับแล้ว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SQL Server แบบกระชับ 3.5 Service Pack 1 โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
955965คำอธิบายของ SQL Server แบบกระชับ 3.5 Service Pack 1
ข้อมูลการเริ่มระบบใหม่
คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้
ข้อมูลรีจิสทรี
คุณไม่จำเป็นต้องเปลี่ยนแปลงรีจิสทรี
รายละเอียดแฟ้มโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ประกอบด้วยเฉพาะไฟล์ต่าง ๆ ที่จำเป็นเมื่อต้องการแก้ไขปัญหาที่บทความนี้ โปรแกรมแก้ไขด่วนนี้อาจไม่ประกอบด้วยแฟ้มทั้งหมดที่คุณต้องมีเพื่อปรับปรุงผลิตภัณฑ์อย่างสมบูรณ์ไปเป็นรุ่น
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุม
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
System.data.sqlserverce.entity.dll |
3.5.5692.1 |
230,480 |
24-Sep-2008 |
06:46 |
x86/x64/IA-64 |
System.data.sqlserverce.dll |
3.5.5692.1 |
271,440 |
24-Sep-2008 |
06:46 |
x86/x64 |
Policy.3.5.system.data.sqlserverce.dll |
3.5.5692.1 |
13,392 |
24-Sep-2008 |
06:46 |
x86/x64 |
Policy.3.5.system.data.sqlserverce.entity.dll |
3.5.5692.1 |
13,392 |
24-Sep-2008 |
06:46 |
x86/x64 |
Sqlceca35.dll |
3.5.5692.1 |
343,104 |
24-Sep-2008 |
08:07 |
x86 |
Sqlcecompact35.dll |
3.5.5692.1 |
84,544 |
24-Sep-2008 |
08:07 |
x86 |
Sqlceer35en.dll |
3.5.5692.1 |
148,032 |
24-Sep-2008 |
08:07 |
x86 |
Sqlceme35.dll |
3.5.5692.1 |
65,088 |
24-Sep-2008 |
08:07 |
x86 |
Sqlceoledb35.dll |
3.5.5692.1 |
172,608 |
24-Sep-2008 |
08:07 |
x86 |
Sqlceqp35.dll |
3.5.5692.1 |
644,160 |
24-Sep-2008 |
08:07 |
x86 |
Sqlcese35.dll |
3.5.5692.1 |
348,224 |
24-Sep-2008 |
08:07 |
x86 |
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ ผู้ให้บริการที่คาดเดาชนิดข้อมูลสำหรับพารามิเตอร์ของEDM สตริชนิดข้อมูลหรือ ของEDM ไบนารีชนิดของข้อมูล ตัวประมวลผลแบบสอบถามเลือกชนิดข้อมูลที่ถูกต้องสำหรับพารามิเตอร์โดยยึด ตามค่า หรือคอลัมน์ซึ่งพารามิเตอร์คือ equated หรือ พร้อมที่จะใช้พารามิเตอร์
ตัวอย่างเช่น ในการสอบถาม SQL ของเอนทิตีต่อไปนี้ ตัวประมวลผลแบบสอบถามเลือกชนิดข้อมูลntextสำหรับพารามิเตอร์ชื่อก่อนที่จะใช้โปรแกรมแก้ไขด่วนนี้
String name = "XYZ";var q = from e in nwind.Employees
where e.First_Name = name
select e;
หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ มีเลือกชนิดข้อมูลของคอลัมน์ชื่อสำหรับชื่อพารามิเตอร์
อย่างไรก็ตาม ในตัวอย่างต่อไปนี้ แบบสอบถาม "LINQ กับเอนทิตี" ล้มเหลวเนื่องจากชื่อพารามิเตอร์ไม่ใช่ equated กับ หรือใช้กับค่าหรือคอลัมน์อื่น ๆ
String name = "XYZ";var q = from e in nwind.Employees
select name;
นอกจากนี้โปรแกรมแก้ไขด่วนนี้ยังแก้ปัญหาที่ทราบที่อธิบายไว้ในเอกสาร readme สำหรับ 3.5 แบบย่อของเซิร์ฟเวอร์ SQL สำหรับข้อมูลเพิ่มเติม โปรดดูส่วน "SQL Server กระชับข้อมูล 3.5 SP1 รันไทม์ปัญหาสำหรับตัว ADO.NET เอนทิตีกรอบ" ไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://download.microsoft.com/download/2/e/c/2ec70436-aef2-4ccb-93a3-ea2f3e20f77d/ReadmeSSC35.htmโปรแกรมแก้ไขด่วนนี้ช่วยแก้ไขปัญหาที่เกี่ยวข้องกับคำสั่ง SQL คำสั่งกลุ่มไม่ถูกต้องที่สร้างขึ้นเมื่อตัวให้บริการการแปลงแบบสอบถามย่อยสเกลาเพื่อใช้โครงสร้าง
หมายเหตุ แบบสอบถามย่อยแบบ correlated จะถูกแปลงเป็นแบบสอบถามย่อยสเกลาภายใน แบบสอบถามย่อยแบบ correlated ไม่ได้รับการสนับสนุนในรุ่นนี้ เมื่อคุณเรียกใช้แบบสอบถามเหล่านี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
มีข้อผิดพลาดเกิดขึ้นขณะดำเนินการคำสั่ง ดูข้อยกเว้นภายในสำหรับรายละเอียด
ข้อยกเว้นภายในประกอบด้วยข้อความต่อไปนี้:
มีข้อผิดพลาดในการแยกวิเคราะห์แบบสอบถาม [..., โทเค็นในข้อผิดพลาด = AS]
เหตุผลคือ ว่า ADO.NET เอนทิตีกรอบงานแปลแบบสอบถามที่มีการป้อนข้อมูลเป็นแบบสอบถามที่มีชนิดการรวมระหว่างการนำไปใช้หรือชนิดการรวมภายนอกใช้ ถ้าทางด้านขวาของเงื่อนไขการรวมส่งกลับค่าสเกลา การรวมจะถูกแปลงเป็นแบบสอบถามย่อยสเกลา ผู้ให้บริการ ADO.NET เอนทิตีกรอบสำหรับเซิร์ฟเวอร์ SQL กระชับข้อมูลการแปลงแบบสอบถามย่อยนั้นสเกลาเป็นแบบสอบถามเทียบเท่าที่มีการนำไปใช้ภายนอกชนิดการรวม ซึ่งได้รับการสนับสนุน โดยการกระชับข้อมูล SQL Server ได้ อย่างไรก็ตาม ในรุ่นนี้ การแปลงนี้ไม่เสร็จสิ้นอย่างถูกต้อง ตัวอย่างเช่น ข้อผิดพลาดเกิดขึ้นสำหรับแบบสอบถามต่อไปนี้ในรุ่นนี้
C# Sample Application:using (NorthwindEntities nwEntities = new NorthwindEntities())
{
var orders = nwEntities.Employees
.Select(employee => employee.Orders.Max(order => order.Order_ID));
foreach (var order in orders)
{
Console.WriteLine(order.ToString());
}
}
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแบบแผนการตั้งชื่อสำหรับการปรับปรุง SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
แพคเกจการปรับปรุง schema ตั้งชื่อใหม่822499สำหรับซอฟต์แวร์ของ Microsoft SQL Server
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับศัพท์เฉพาะในการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft