Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Visual Basic Y Sql Server

Estas en el tema de Visual Basic Y Sql Server en el foro de Visual Basic clásico en Foros del Web. hola amigos, mi pregunta es la siguiente y necesito opiniones: tengo una bd en access que la importe desde sql server (todo perfecto), cambie la ...
  #1 (permalink)  
Antiguo 31/05/2006, 20:35
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Visual Basic Y Sql Server

hola amigos, mi pregunta es la siguiente y necesito opiniones:

tengo una bd en access que la importe desde sql server (todo perfecto),
cambie la conexion de mi programa y me permite conectarme a sql server y todo, el problema es que las tablas inician el nombre con numeros, es decir, por ejemplo:
00_clientes
01_servicios, etc.
y cuando intento abrir la tabla desde VB6 me sale un error de sintaxis cerca de 00_usuarios, por ejemplo, y al cambiare el nombre de la tabla (usuarios) me permite el paso... por lo tanto podriamos decir que al conectarnos a sql server no se puede tener tablas que el nombre empiece con numeros (no asi con access), ¿es cierto esto?, o a lo mejor hay que poner algun caracter antes...??? la verdad no se, como es una gran cantidad de tablas y consultas no quisiera tener que empezar a cambiar los nombres de las mismas y volver a desarrollar las consultas...en definitiva ¿que puedo hacer para que la conexion me permita abrir las tablas de sl server aunque los nombres de ésta empiecen con numeros?

ahhhh, y ademas cual seria el codigo o la forma para determinar primero si el servidor esta funcionando antes de conectar y no se pegue el programa??????

gracias...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #2 (permalink)  
Antiguo 07/06/2006, 15:20
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
uuuuf, nadie tiene ni la mas minima opinion al respecto...?????
mmm...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #3 (permalink)  
Antiguo 07/06/2006, 15:24
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
te puede servir algo como: SELECT * FROM [00_clientes] WHERE ...
  #4 (permalink)  
Antiguo 07/06/2006, 15:28
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Para que no se "apague" el programa debes de poner un ON ERRO GO TO... esta es mi funcion para abrir la conexion a la base:

Public Sub abre_conexion()

On Error GoTo ERROR:
Set conexion = New ADODB.Connection
conexion.Open "dsn"
ERROR:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical
End If

End Sub
  #5 (permalink)  
Antiguo 07/06/2006, 15:48
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
gracias....

se me habia ocurrido cualquier caracter menos ese, voy a probar y si resulta te lo agradezco....

nois vemos....
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #6 (permalink)  
Antiguo 07/06/2006, 15:50
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
No conozco una manera de solo "preguntar" desde visual basic si el servicio de SQL Server está arriba
  #7 (permalink)  
Antiguo 07/06/2006, 16:05
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
en el fondo mi idea era esa justamente, explicar la forma de detectar si el servidor esta detenido o no... aunque el codigo que pusiste, creo, se quedara pegado ya que el problema que tengo es justamente al abrir la conexion donde se queda pegado y no da mensajes de error ni nada, pero de todos modos voy a probar ...
gracias.
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #8 (permalink)  
Antiguo 07/06/2006, 17:59
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Lo que el codigo hace es al haber un error (de cualquier tipo) se salta a la linea ERROR, y Err.Description va a contener el error, allí te va a salir algo como El Servidor SQL Server no existe o acceso denegado.

Esto no sirve solo para eso, lo deberías poner en todas tus funciones, ya que si en ejecucion tu .exe se cae se cierra el programa, en cambio lo que aqui hace es controlar cualquier error
  #9 (permalink)  
Antiguo 11/06/2006, 16:47
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta perfecto...

mira, ahora tengo otra preguntita, la verdad es que estaba acostumbrado a trabajar solo en access y he tenido que hacer unas modificaciones (de codigo) para hacerlo en sql server y he tenido problemas y ademas corto de tiempo...
para buscar entre fechas en Sql server como debo hacerlo (sintaxis) ya que he modificado pero nada...
por ejemplo yo buscaba entre dos fechas en access de esta forma:

rst.open "Select * from servicios between fecha=#" & fecha1 &"# and =#" & fecha2 &"#"",oconn1 (mas o menos)

como traduzco esto para sql server???

p.d. mi campo es DATETIME

gracias...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #10 (permalink)  
Antiguo 12/06/2006, 18:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Debes de quitarle las '#'
  #11 (permalink)  
Antiguo 13/06/2006, 10:49
Avatar de Fabuazul  
Fecha de Ingreso: febrero-2006
Ubicación: Entre cuatro paredes
Mensajes: 693
Antigüedad: 18 años, 3 meses
Puntos: 7
Y sustituirlas por apostrofe ( ' ).

Así está tu consulta:

=#" & fecha1 &"#

y deber ser de esta manera:

='" & fecha1 &"'
__________________
Sí tienes alguna duda.... puedo ayudar a ampliarla.:-D
  #12 (permalink)  
Antiguo 13/06/2006, 13:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 37
Antigüedad: 18 años, 3 meses
Puntos: 0
Crea un DSN de sql que se conecte a tu base

luego en tu form pon un DATA Control

Conectalo con :

ControlData.DatabaseName="PROVIDER=MSDASQL;dsn=Nom breDSN;uid=;pwd=;"
ControlData.Refresh

con eso tienes acceso a todas tus tablas , tengan el nombre que sea

Ademas de que si el servidor sql no esta activo te manda un error que puedes manejar facilmente.


Accede a tus datos asi :

ControlData.RecordSource = "select dato1,dato2,dato3 from 01-clientes where dato1 = 1 and dato2 = " & Chr$(39) & Text1 & Chr$(39)
ControlData.Refresh


Para seleccionar fechas haz arreglos con dos DTPICKER que el usuario selecciona :

sfecha = ""
Dfecha = Mid$(DTP1.Value, 7, 4) & "-" & Mid$(DTP1.Value, 4, 2) & "-" & Mid$(DTP1.Value, 1, 2) & " 00:00:00.000"
afecha = Mid$(DTP2.Value, 7, 4) & "-" & Mid$(DTP2.Value, 4, 2) & "-" & Mid$(DTP2.Value, 1, 2) & " 00:00:00.000"
sfecha = "Between {ts '" & Dfecha & "'} and {ts '" & afecha & "'}"

ControlData.RecordSource = "select dato1,dato2,dato3 from 00-servicios where dato1 = 1.00 and fechaentrega " & sfecha & " order by dato2, fechaentrega asc"
ControlData.Refresh


Espero te sirva la idea
__________________
Jerico
  #13 (permalink)  
Antiguo 13/06/2006, 17:59
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por Fabuazul
Y sustituirlas por apostrofe ( ' ).

Así está tu consulta:

=#" & fecha1 &"#

y deber ser de esta manera:

='" & fecha1 &"'
Orale! Gracias Fabulinda supuse que en su codigo si tenía la comilla simple

Eso es algo que no me gusta de Access, que si te cambias a SQL Server y trabajas con fechas tienes que cambiar el código. Por cierto, Access es muy malo para las fechas, me pasaba que hacía un select entre un rango de fechas que sabía que si arrojaba resultados y no arrojaba nada y hace tiempo pude ver algunos usuarios preguntando que le pasaba a sus selects similares en que se filtraba por fecha
  #14 (permalink)  
Antiguo 13/06/2006, 21:10
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta excelente...pero

tenian razon, bastaba reemplazar ' por # y listo...
el pero que tengo ahora es detectar el estado del servidor de sql server ya que no puedo detectar cuando esta detenido...
yo me conecto asi:

dim connect as new adodb.connection

y luego

With oconn1
.ConnectionString = "uid=;pwd=;driver={SQL Server};server=USUARIO-407C33C;database=usuarios1;dsn=''"
.Open
End With

pero se pega aun con el codigo que me diste Developer... pero imagino que tendre que detectar antes del ".open" si la conexion se realizo...
cualquier sugerencia la agradezco...

gracias de todos modos....
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:06.