Problem Sortierung mit Stored Procedure oder normale Access Query

21/09/2009 - 11:52 von David Di Donato | Report spam
hallo zusammen

ich habe folgendes problem.
Ich habe auf dem sql server 2005 ein stored proc. erstellt:

***
CREATE PROCEDURE [dbo].[PRIMA_RepText]
@AktMandat nvarchar(50),
@PKPlan nvarchar(12),
@Jahr int,
@Name nvarchar(50)
AS
SELECT RepText.*
FROM RepText
WHERE (((RepText.Mandat)=@AktMandat Or (RepText.Mandat) Is Null)
AND ((RepText.PKPlan)=@PKPlan Or (RepText.PKPlan) Is Null)
AND ((RepText.Jahr)=@Jahr Or (RepText.Jahr) Is Null) AND ((Upper
([RepText].[Name]))=Upper(@Name)))
ORDER BY RepText.Mandat DESC , RepText.PKPlan DESC , RepText.Jahr
DESC;
***
meine funktion im ACCESS ist:

**
Set QryDef = CodeDb.CreateQueryDef("")
QryDef.Connect = d_.sConnect
QryDef.SQL = FStr("PRIMA_RepText '%1', '%2', %3, '%4'", "X", "XX",
0, "AUST92")
QryDef.ReturnsRecords = True

Set rs = QryDef.OpenRecordset

If rs.RecordCount > 0 Then
rs.MoveFirst
T = Nz(rs.Fields(sSprache).Value, "")
End If

Set rs = Nothing
Set QryDef = Nothing
**

soweit alles gut - daten werden selektiert - aber die sortierung ist
anders als wenn ich die gleiche abfrage mit ACCESS machen würde. ich
habe das gefühl das DESC reagiert anders auf dem SQL Server als die
Access Abfrage. Kann dies etwas mit dem WERT NULL auf dem SQL Server
zu tun haben ?

danke für eure hilfe.

david
 

Lesen sie die antworten

#1 Ulf Knochenhauer
22/09/2009 - 10:41 | Warnen spam
Hallo David,
ich habe folgendes problem.
Ich habe auf dem sql server 2005 ein stored proc. erstellt:

***
CREATE PROCEDURE [dbo].[PRIMA_RepText]
@AktMandat nvarchar(50),
@PKPlan nvarchar(12),
@Jahr int,
@Name nvarchar(50)
AS
SELECT RepText.*
FROM RepText
WHERE (((RepText.Mandat)=@AktMandat Or (RepText.Mandat) Is Null)
AND ((RepText.PKPlan)=@PKPlan Or (RepText.PKPlan) Is Null)
AND ((RepText.Jahr)=@Jahr Or (RepText.Jahr) Is Null) AND ((Upper
([RepText].[Name]))=Upper(@Name)))
ORDER BY RepText.Mandat DESC , RepText.PKPlan DESC , RepText.Jahr
DESC;
***
meine funktion im ACCESS ist:

**
Set QryDef = CodeDb.CreateQueryDef("")
QryDef.Connect = d_.sConnect
QryDef.SQL = FStr("PRIMA_RepText '%1', '%2', %3, '%4'", "X", "XX",
0, "AUST92")
QryDef.ReturnsRecords = True

Set rs = QryDef.OpenRecordset

If rs.RecordCount > 0 Then
rs.MoveFirst
T = Nz(rs.Fields(sSprache).Value, "")
End If

Set rs = Nothing
Set QryDef = Nothing
**

soweit alles gut - daten werden selektiert - aber die sortierung ist
anders als wenn ich die gleiche abfrage mit ACCESS machen würde. ich
habe das gefühl das DESC reagiert anders auf dem SQL Server als die
Access Abfrage. Kann dies etwas mit dem WERT NULL auf dem SQL Server
zu tun haben ?



das kann von einem Bug im SQL-Server herrühren.
Versuche es mal mit SELECT TOP (100000) ... ORDER BY ...
HTH
Ulf

Ähnliche fragen