Grupo
Me pidieron hacer una pequeña aplicación que Inserte/Borre/Actualice/Consulte una base de datos de SQL (me refiero a SQL de Microsoft),
ya tengo el 80% de avance, PEROO se me presentó dos problemas:
1- ¿cómo puedo saber si mi aplicación ya se conectó a la base de datos, por el momento sino se conecta manda un error y luego de sale de la aplicación y yo deseo mandar un mensaje al usuario de NO SE PUDO CONECTAR A LA BASE DE DATOS, INTENTE MÁS TARDE
2- Cuando hago un INSERT o un UPDATE, puede que me dé un error cuando intento insertar o actualizar, ¿Cómo le hago para "cachar" ese error de que no puedo ejecutar la acción?, para que de igual manera mandarle un mensaje al usuario.
De antemano muchas gracias por la ayuda
Ayuda con MS-SQL
Moderator: Rathinagiri
-
jorge.posadas
- Posts: 192
- Joined: Mon May 19, 2014 7:43 pm
- DBs Used: DBF, SQLite, MS-SQL, ACCESS, MariaDB (en proceso)
- Location: Morelia, Mich. México
- Contact:
Ayuda con MS-SQL
Cordialmente
POSADAS SOFTWARE
Jorge Posadas Ch.
Programador independiente
Morelia, Mich.
M é x i c o .
Movil +52 44 3734 1858
SKYPE: jorge.posadasch
Email: jorge.posadas@posoft.mx
POSADAS SOFTWARE
Jorge Posadas Ch.
Programador independiente
Morelia, Mich.
M é x i c o .
Movil +52 44 3734 1858
SKYPE: jorge.posadasch
Email: jorge.posadas@posoft.mx
- serge_girard
- Posts: 3342
- Joined: Sun Nov 25, 2012 2:44 pm
- DBs Used: 1 MySQL - MariaDB
2 DBF - Location: Belgium
- Contact:
Re: Ayuda con MS-SQL
1) When you make the connection; check return value
2) idem
Serge
2) idem
Serge
There's nothing you can do that can't be done...
- edufloriv
- Posts: 240
- Joined: Thu Nov 08, 2012 3:42 am
- DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
- Location: PERU
Re: Ayuda con MS-SQL
Hola Jorge,
Si estás usando ADO para conectarte me parece que buscas una función del propio objeto que atrape el error (como lo tiene Mysql). Me parece que en algún momento busque lo mismo y no lo encontré, yo uso esta función:
Llegué a esta conclusión porque el propio microsoft pone un ejemplo para vb:
Siendo AdoError:
Si logras averiguar algo distinto te agradeceré me lo hagas saber, ya que me interesa también poder realizar el "trapping" de conectividad al server.
Si estás usando ADO para conectarte me parece que buscas una función del propio objeto que atrape el error (como lo tiene Mysql). Me parece que en algún momento busque lo mismo y no lo encontré, yo uso esta función:
Code: Select all
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
* FUNCION : INICONEXION
* COMENTARIO: CONEXION AL SERVIDOR MS-SQL.
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC INICONEXION
LOCAL oError
LOCAL cIPConect := ""
LOCAL cIPAddress := ""
LOCAL cIPUsuario := ""
LOCAL cIPPassword := ""
LOCAL cIPCatalogo := ""
PUBLIC oConexion
PUBLIC INI_CONEX := .F.
IF FILE('c:\farmacom\ipdata.txt')
aIpData := Txt2Array('c:\farmacom\ipdata.txt')
cIpAddress := UNCRYPT( aIpData[1] )
cIpUsuario := UNCRYPT( aIpData[2] )
cIpPassword := UNCRYPT( aIpData[3] )
cIpCatalogo := UNCRYPT( aIpData[4] )
ELSE
msginfo('no existe el archivo de conexión al servidor.')
Win_InfoFarma.Release
ENDIF
cIPConect := "Provider=SQLOLEDB;Network Library=DBMSSOCN;Data Source=" + cIpAddress + ";Initial Catalog=" + cIpCatalogo +";User Id=" + cIPUsuario + ";Password=" + cIpPassword + ";"
BEGIN SEQUENCE
oConexion := TOleauto():New('ADODB.Connection')
oConexion:ConnectionTimeout := 120
oConexion:Open(cIPConect)
INI_CONEX := .T.
RECOVER USING oError
MsgStop('No se pudo conectar al servidor SQL '+chr(13)+;
'el servidor retornó el siguiente error: '+chr(13)+;
oError:Operation+CRLF+oError:Description,"Conexión Ado")
Win_InfoFarma.Release
END SEQUENCE
RETURN
Code: Select all
Dim Conn1 As New adodb.Connection
Dim Cmd1 As New adodb.Command
Dim Errs1 As Errors
Dim Rs1 As New adodb.Recordset
Dim i As Integer
Dim AccessConnect As String
' Error Handling Variables
Dim errLoop As Error
Dim strTmp As String
AccessConnect = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=nwind.mdb;" & _
"DefaultDir=C:\program files\devstudio\vb;" & _
"Uid=Admin;Pwd=;"
'---------------------------
' Connection Object Methods
'---------------------------
On Error GoTo AdoError ' Full Error Handling which traverses
' Connection object
' Connection Open method #1: Open via ConnectionString Property
Conn1.ConnectionString = AccessConnect
Conn1.Open
Conn1.Close
Conn1.ConnectionString = ""
' Connection Open method #2: Open("[ODBC Connect String]","","")
Conn1.Open AccessConnect
Conn1.Close
' Connection Open method #3: Open("DSN","Uid","Pwd")
Code: Select all
AdoError:
i = 1
On Error Resume Next
' Enumerate Errors collection and display properties of
' each Error object (if Errors Collection is filled out)
Set Errs1 = Conn1.Errors
For Each errLoop In Errs1
With errLoop
strTmp = strTmp & vbCrLf & "ADO Error # " & i & ":"
strTmp = strTmp & vbCrLf & " ADO Error # " & .Number
strTmp = strTmp & vbCrLf & " Description " & .Description
strTmp = strTmp & vbCrLf & " Source " & .Source
i = i + 1
End With
Next
Eduardo Flores Rivas
LIMA - PERU
Re: Ayuda con MS-SQL
Hola Jorge,
No sé si no entendí el requerimiento, no te vale con Try... Cath?
Saludos,
Javier
No sé si no entendí el requerimiento, no te vale con Try... Cath?
Saludos,
Javier