Hel!Riser
Дата: 08.10.2003 12:57:22
Есть ХП, кот делает внутри себя несколько селектов.. в клиенте на Дельфях, используя TADODataset и TStoredProcDataset ессно это датасеты появляюца, и по умолчанию устанавливаеца на первый. а нужен - последний. Это настройки сервера влияют на выбор или как?!
Berg
Дата: 08.10.2003 12:59:41
> по умолчанию устанавливаеца на первый. а нужен - последний.
Наружу выдается как раз последний...
tpg
Дата: 08.10.2003 13:00:51
Не знаю как там с дельфями, а у ADO-шного рекорсета есть метод NextRecordset
Hel!Riser
Дата: 08.10.2003 13:10:08
2 Berg. В Фоксе, пользуя ОДБЦ отдаеца клиенту как раз последний. А с АДО - именно первый
2 tpq. Да, этот метод есть, но получаеца немеряно перебрать, чтоб уйти на последний. Может как-нить побыстрей реально сделать установку на последний?
Gator
Дата: 08.10.2003 13:15:36
Что-то вроде
(ADODataSet as TCustomADODataSet).NextRecordSet
или ADODataSet.RecordSet.NextRecorSet
и какойто Count (типа RecordSets) - см. Delphi Help
Учтите, что после NextRecorSet вы теряете доступ к предыдущему rs и вернуться к нему будет невозможно. Чтобы этого избежать, делайте клон перед NextRecordSet
tpg
Дата: 08.10.2003 13:16:21
Да, этот метод есть, но получаеца немеряно перебрать, чтоб уйти на последний
А что, Вы, тип, используете процессор 8088 с тактовой частотой 10МГц?
Hel!Riser
Дата: 08.10.2003 13:26:24
2 All ок. понятно, спасиба
ЗЫ 2 tpg звиняй, что в посте букву не распознал последнюю. но на личность не переходиТЕ. есть вопрос, благодарю что прояснили
tpg
Дата: 08.10.2003 13:36:46
ЗЫ 2 tpg звиняй, что в посте букву не распознал последнюю. но на личность не переходиТЕ. есть вопрос, благодарю что прояснили
Эт у меня очепятка случилась! Действительно, хотел сказать:
А что, Вы, типА, используете процессор 8088 с тактовой частотой 10МГц?
Hel!Riser
Дата: 08.10.2003 13:48:24
2 tpg :) это читаеца куда более симпатишнее ;))
дык я тада продолжу со своей бедой... ;)
Вот пост моего генерала, как толька он прочитал ответы на интересующий его вопрос - "Все хорошо, мы это знаем, но нет CountRecordSet в адошном интерфейсе и мы не знаем сколько их." Беда в том, что на клиенте нужен явно и быстро последний рекордсет... Машинка ессно нехилая, но типа перебор забивает время. Если нет реального перехода или настройки сервера вернуть из ХП только последний набор, то плз, скажите, а? :}
ЗЫ собсна я даже не знаю о чем речь идет.. (:)
tpg
Дата: 08.10.2003 13:51:36
Вот пример из MSDN
'BeginNextRecordsetVB
'To integrate this code
'replace the data source and initial catalog values
'in the connection string
Public Sub NextRecordsetX()
' connection and recordset variables
Dim rstCompound As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Dim SQLCompound As String
Dim intCount As Integer
' Open connection
Set Cnxn = New ADODB.Connection
strCnxn = "Provider=sqloledb;Data Source=MyServer;Initial Catalog=pubs;User Id=sa;Password=;"
Cnxn.Open strCnxn
' Open compound recordset
Set rstCompound = New ADODB.Recordset
SQLCompound = "SELECT * FROM Authors; " & _
"SELECT * FROM stores; " & _
"SELECT * FROM jobs"
rstCompound.Open SQLCompound, Cnxn, adOpenStatic, adLockReadOnly, adCmdText
' Display results from each SELECT statement
intCount = 1
Do Until rstCompound Is Nothing
Debug.Print "Contents of recordset #" & intCount
Do Until rstCompound.EOF
Debug.Print , rstCompound.Fields(0), rstCompound.Fields(1)
rstCompound.MoveNext
Loop
Set rstCompound = rstCompound.NextRecordset
intCount = intCount + 1
Loop
' clean up
rstCompound.Close
Cnxn.Close
Set rstCompound = Nothing
Set Cnxn = Nothing
End Sub
'EndNextRecordsetVB |
|
Хотя
Gator предложил приемлимый вариант.