Ich habe iPhone APP, die heute veröffentlicht wurde. Daten für die App stammen aus der Datenbank. Während des Testens fiel mir auf, dass einer der SPs Datensatz mit 4 Tabellen von Tabelle zu Tabelle3 zurückgibt. Tabelle3 einige Zeit existiert nicht in Abhängigkeit von der WHERE
Claus für einige der Client. Innerhalb der App habe ich angenommen, dass es vorhanden ist, so dass Ergebnis ist in der für das Wörterbuch der Array. Ich suche direkt nach ObjectATIndex. Wenn die Tabelle nicht zurückkehrt, scheitert die Bedingung und die App stürzt ab.get Tabelle mit Standardwerten, wenn keine Zeile von StoredProcedure
Da App heute selbst veröffentlicht wurde, kann ich den Code ab sofort nicht ändern. Kann ich einige Standardwerte innerhalb der Tabelle senden.
meine Abfrage für die Tabelle
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- ALTER date: <ALTER Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[_spGetEmpList]
@strComCode as varchar(50),
@iDepID as INT,
@strType AS varchar(20)
AS
BEGIN
DECLARE @bNameOrder as bit
SET NOCOUNT ON;
SELECT @bNameOrder = dbo.svnGetSetupOption(@iDepID,
'LastNamePreceedsFirstName',
@strComCode)
IF (@bNameOrder IS NULL)
SET @bNameOrder = 0
IF(@strType = 'Emp')
BEGIN
--0**************************************
SELECT EmpID AS ResourceID, EmpNumber
FROM Emuloyeetbl
WHERE Emuloyeetbl.IsActive = 1 AND DepID = @iDepID
ORDER BY EmpFName
--1**************************************
SELECT DepartmentName
FROM tblDepartment
WHERE IsActive = 1
--2**************************************
SELECT OptionValue AS EmpRole
FROM EmpRole
WHERE OptionName = 'EmployeeRole' AND DepID = @iDepID AND IsActive = 1
--3**************************************
Select EmployeeFirstName + ' '+EmplouyeeLastName as EmpName
from EmpTable
Where DepID = @iDepID AND EmpSalary < 10
END
END
Above Abfrage zurückgeben keine Zeilen ist Angenommen, aber in meiner app, die ich für Tisch bin Überprüfung (angenommen I Tabelle vorhanden sein wird), ist es eine Möglichkeit, ich kann Überprüfen Sie, ob Zeile vorhanden ist oder nicht, wenn nicht, dann senden Sie einen leeren Wert für EmpName, mindestens App wird nicht Crach .....
Auf der positiven Seite, ich denke, es kann behoben werden, aber bitte posten volle SP, Ihre Beschreibung ist schwer zu folgen. Möglicherweise verwechseln Sie Terminologie mit Recordset und Tabelle. – Alex
Welche Version von SQL Server verwenden Sie? – Alex
Ich habe Frage bearbeitet. – user2813740