Ben bir MSSQL sever için bir PHP ODBC bağlantısı aşağıdaki sorguyu çalıştırıyorum:
DECLARE @weekStart SMALLDATETIME;
SET @weekStart = DATEADD(d,0, DATEDIFF(d,0,GETDATE())); -- weekStart = TODAY @ 00:00:00 -- per http://weblogs.sqlteam.com/jeffs/archive/2007/01/02/56079.aspx
SET @weekStart = DATEADD(d, 1-DATEPART(dw, GETDATE()), @weekStart); -- subtract to last SUN @ 00:00:00
SELECT
DATEDIFF(week, Run_Date, @weekStart)
AS weeksAgo
,MIN(Current_List) AS list
,COUNT(*) AS cnt
,SUM(NoContact_90Days) AS noContact90
,SUM(NoContact_180Days) AS noContact180
,SUM(NoMtg_180Days) AS noMtg180
,SUM(NoMtg_360Days) AS noMtg360
FROM
[someDB].[DBO].[someTable]
WHERE
Current_List<>''
GROUP BY
DATEDIFF(week, Run_Date, @weekStart)
,Current_List
ORDER BY DATEDIFF(week, Run_Date, @weekStart)
;
: Yukarıdaki sorgu Q1 ise, demek ki, ve diğer bazı önemsiz sorgu ardından aşağıdaki çalışıyor, Q2 - Benim bağlantısı aracılığıyla koşmak bu şekilde, onu daha fazla sorgular için bağlantı "harabe" gibi görünüyor
$rs = odbc_exec($conn, $Q2);
var_dump($rs); // $rs is a valid result set
ama bu bir hata olmadan başarısız olur:
$rs1 = odbc_exec($conn, $Q1);
$rs2 = odbc_exec($conn, $Q2);
var_dump($rs2); // $rs2 is FALSE
Bu Q1 şekilde bağlantı "bozulmadan" gibi görünüyor böylece Q2 Nothing, iki örnek arasındaki yukarıda değiştirilir.
Ben şimdi birkaç gün için bu ile oynuyorum ve ben Q1 birden fazla sonuç kümesi döndüren çünkü olduğunu düşünüyorum bana yol şeylerin bir çift içine çalıştırmak, ama ne o {oldukça emin değilim [(0)]}.
İşte benim sorular şunlardır:
- What does it mean for an ODBC connection to return more than one result set?
- Is there any way to get this to work?
Teşekkürler!
Edit:, ek soru
- Birden fazla kayıt setleri iade ediliyor uğraşırken, onlar aynı amacıyla iade olacağını garanti ediyorum? Yoksa DBMS bir sonraki gün (rs1, rs2, rs3) geri göndermek ve (rs3, rs1, rs2) olması mümkündür?