Рекордсет и ошибки в базе MS SQL |
Public Function openSingleValue(ByVal QueryText As String, ByVal FieldName As String) As Variant Dim rslt As Variant Dim rst As Recordset Set rst = OpenRecordset(QueryText) If rst.RecordCount > 0 Then rslt = rst.Fields(FieldName).Value End If rst.Close openSingleValue = rslt End Function Public Function OpenRecordset(QueryText As String) As DAO.Recordset On Error GoTo err 'переопределил текст запроса 'создал временный кверидеф Dim qdf As QueryDef Set qdf = CreateTempQueryDef(QueryText) 'собственно открыл рекорсет Set OpenRecordset = qdf.OpenRecordset(dbOpenForwardOnly, dbReadOnly) qdf.Close Exit Function err: MsgBox "Error connection SQL server", vbInformation qdf.Close End Function
CREATE PROC [dbo].[p_myproc_delete](@id INT) AS BEGIN SET NOCOUNT ON; DECLARE @Row_Count INT; DECLARE @Error_Code INT; SET XACT_ABORT OFF; DELETE FROM tbl_mytable WHERE id = @id; SELECT @Row_Count = @@ROWCOUNT, @Error_Code = @@ERROR IF (@Error_Code <> 0) OR (@Row_Count <> 1) BEGIN IF @Error_Code = 547 -- существует foreight key BEGIN RETURN (-400); -- ошибка - есть ссылка END ELSE BEGIN RETURN (-300); -- ошибка при удалении END END; ELSE BEGIN RETURN @id; END; END;
http://www.sql.ru/forum/1193785/rekordset-i-oshibki-v-baze-ms-sql
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |