|
|
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Строки добавляются методом Docmd.RunSql (Insert Into ......From ..... Where .... ) Вопрос: Как определить количество добавляемых строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:52 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Взять селектную часть этого инсерта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:58 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:02 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Сначала запустить SELECT Count(*) по тем же условиям отбора, а уж потом insert ПРоблема: а если будет ошибка уникальности при вставке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:03 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Т.е.: рс = CurrentDb.OpenRecorset("Селектная часть...") кол_строк = рс.RecordCount А нельзя как нибудь по другому? В селектной части есть много параметров, берущих данные из форм, надо цикл делать для присвоения параметрам значений (из ФАКА взял), а запрос и так медленно выполняется Как нибудь красиво?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:05 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
А почему не currentdb.RecordsAffected ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:09 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
естественно нужно заменить DoCmd на Currentdb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:10 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Посмотри на RecordsAffected property. Только тебе прийдётся не docmd использовать, а currentdb.execute , что почти одно и то же. ------------------------------------------------------------------- This example uses the RecordsAffected property with action queries executed from a Database object and from a QueryDef object. The RecordsAffectedOutput function is required for this procedure to run. Sub RecordsAffectedX() Dim dbsNorthwind As Database Dim qdfTemp As QueryDef Dim strSQLChange As String Dim strSQLRestore As String Set dbsNorthwind = OpenDatabase("Northwind.mdb") With dbsNorthwind ' Print report of contents of the Employees ' table. Debug.Print _ "Number of records in Employees table: " & _ .TableDefs!Employees.RecordCount RecordsAffectedOutput dbsNorthwind ' Define and execute an action query. strSQLChange = "UPDATE Employees " & _ "SET Country = 'United States' " & _ "WHERE Country = 'USA'" .Execute strSQLChange ' Print report of contents of the Employees ' table. Debug.Print _ "RecordsAffected after executing query " & _ "from Database: " & .RecordsAffected RecordsAffectedOutput dbsNorthwind ' Define and run another action query. strSQLRestore = "UPDATE Employees " & _ "SET Country = 'USA' " & _ "WHERE Country = 'United States'" Set qdfTemp = .CreateQueryDef("", strSQLRestore) qdfTemp.Execute ' Print report of contents of the Employees ' table. Debug.Print _ "RecordsAffected after executing query " & _ "from QueryDef: " & qdfTemp.RecordsAffected RecordsAffectedOutput dbsNorthwind .Close End With End Sub Function RecordsAffectedOutput(dbsNorthwind As Database) Dim rstEmployees As Recordset ' Open a Recordset object from the Employees table. Set rstEmployees = _ dbsNorthwind.OpenRecordset("Employees") With rstEmployees ' Enumerate Recordset. .MoveFirst Do While Not .EOF Debug.Print " " & !LastName & ", " & !Country .MoveNext Loop .Close End With End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:14 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Попробую вариант VIG и Alexus12 Попутно вопрос: В процедуре будет таким образом 2 селекта (один в моем SQL, другой в select count (*) from [From ..... Where .... part]) Означает ли это, что будет высчитываться и формироваться выборка 2 раза с вытекающим из этого удвоенным временем работы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:14 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Именно так. Поэтому есть вариант: скидывать эту выборку в отдельную таблицу (очищая ее перед этим) и уже по ней брать кол-во строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:20 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
2AlexJuice Понятно Тогда надо попробовать вариант мадама Правда там Execute, что вызывает необходимость присваивать значения параметрам запроса, но по-моему он самый быстрый Ну и как последний вариант твой 2мадама А если не трудно, не могли бы опубликовать вместо примера RecordsAffected его описание, а то у меня хелп никак нихочет нормально работать, по этому свойству ничего не показывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:29 |
|
||
|
Как определить кол-во добавляемых строк?
|
|||
|---|---|---|---|
|
#18+
Public Function ExecuteCommand(strSQL As String) As Long 'возвращает к-во обработанных записей Dim cmd As ADODB.Command Dim lngAffected As Long Set cmd = New ADODB.Command With cmd .ActiveConnection = CurrentProject.Connection .CommandType = adCmdText .CommandText = strSQL .Execute lngAffected, , adExecuteNoRecords End With ExecuteCommand = lngAffected Set cmd = Nothing End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1686&tid=1676839]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 297ms |

| 0 / 0 |
