Foros del Web » Programación para mayores de 30 ;) » Programación General »

como combinar cadenas?

Estas en el tema de como combinar cadenas? en el foro de Programación General en Foros del Web. ke tal No sé cómo poder hacerlo para recibir los datos en una DLL que estoy haciendo con VB 6.0. El problema específico es que ...
  #1 (permalink)  
Antiguo 18/02/2004, 16:50
 
Fecha de Ingreso: diciembre-2003
Mensajes: 31
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta como combinar cadenas?

ke tal
No sé cómo poder hacerlo para recibir los datos en una DLL que estoy haciendo con VB 6.0.
El problema específico es que al querer guardar los datos, se chequee si existe el registro en la BD y lo actualice, o si no, que agrege uno nuevo.
En mi código tengo algo así:

VB:
-------------------------------

Option Explicit
Dim oConn As ADODB.Connection ' Creamos un objeto Conexión
Dim rs As ADODB.Recordset ' Creamos un objeto recordset
Dim sSQL As String
----------------------------------

Private Sub conex()
On Error GoTo ErrorCon

Set oConn = New Connection
oConn.Open "DSN=dbacc;UID=;PWD=;"
Exit Sub

ErrorCon:
oConn.Close
Set oConn = Nothing
Err.Raise Err.Number, Err.Source, "Error al recuperar datos. " & vbCrLf & Err.Description
Exit Sub
End Sub
-------------------------------------

Public Function guardar(tabla, valores, condicion)

Call Conex

'Valores(i) de


valor1="columnaBD1=" & valores(0)
valor2="columnaBD2=" & valores(1) ....


sSQL0="SELECT idTabla FROM " & tabla & " WHERE " & condicion & "
sSQL1="INSERT INTO " & tabla & " VALUES " & valores
sSQL2="UPDATE " & valor1 & "," & valor2 & "," ... FROM " & tabla & " WHERE " & condicion

Set rs = New Recordset
rs.Open sSQL, oConn, 0, 1

If rs.BOF And rs.Eof Then 'si no existe el registro, inserta uno nuevo

Set rs1 = New Recordset
rs1.Open sSQL1, oConn, 0, 1

Else 'si existe el registro, lo actualiza

Set rs2 = New Recordset
rs2.Open sSQL2, oConn, 0, 1

End If


Set rs = Nothing
Set oConn = Nothing

End Function
------------------------------------
fin


Mi duda es la siguiente, los valores que recojo en un formulario los paso como parametros a la DLL
como "valor1,valor2, valor3, ... etc", el cual me sirve perfecto para utilizarlo en la consulta INSERT de SQL,
pero para la consulta UPDATE debe ser "columna1=valor1,columna2=valor2,...etc", ni problema es simple
pero estoy enredado, a cerca de cómo lograr una cadena de caracteres del tipo "columna=valor" a partir de
los valores recibo.


Muchas gracias a quien se digne ayudar a este principiante
__________________
el que madruga...
...ta muerto e sueño
  #2 (permalink)  
Antiguo 20/02/2004, 12:01
 
Fecha de Ingreso: febrero-2004
Mensajes: 4
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola no se si he entendido bien tu problema, pero al parecer lo que necesitas , en resumen, es pasar un sentencia SQL utilizando los valores que recibes del formulario. Prueba a concatenar los parametros con el nombre de su columna correspondiente. No se decirte que funcion en basic hace eso, se que en C es strcat o strncat. Creo q puedes buscar por ahi.
espero q t sea util mi opinión.
  #3 (permalink)  
Antiguo 21/02/2004, 09:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 31
Antigüedad: 20 años, 4 meses
Puntos: 0
ke tal Synthetic, la verdad es que no se trata precisamente de eso, sino màs bien de algo super simple, pero que se me fue en coyera, como se dice; tengo una(varias) cadenas que corresponden a las columnas de cada tabla de la BD cmo sigue:

strTabla1="columna1,columna2,columna3,columna4,col umnaN..."

y recibo desde ASP una cadena con valores asì:
valores="valor1,valor2,valor3,valor4,valorN..."

lo que necesito es una funciòn VB para lograr lo siguiente

strColValor="columna1=valor1,columna2=valor2,colum na3=valor3,columna4=valor4,columnaN=valorN..."

sólo eso, pero en VB. Gracias
__________________
el que madruga...
...ta muerto e sueño
  #4 (permalink)  
Antiguo 21/02/2004, 16:30
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 5 meses
Puntos: 0
el ASP siempre devuelve el mismo número de columnas y en el mismo orden??

Saludos
Pablo
  #5 (permalink)  
Antiguo 12/03/2004, 17:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 31
Antigüedad: 20 años, 4 meses
Puntos: 0
si, ASP develve lo que le corresponde correctamente.

En realidad eso es lo de menos, ya que eso lo tengo controlado, lo que no sé es cómo lograr la cadena:

strCV=" c1=v1,c2=v2,c3=v3,c4=v4,...cN=vN"

a partir de la union de:

strC="c1,c2,c3,c4,...cN"
strV="v1,v2,v3,v4,...vN"
__________________
el que madruga...
...ta muerto e sueño
  #6 (permalink)  
Antiguo 13/03/2004, 19:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola,
Puedes usar la funcion Split, que te devuelve en un vector las cadenas que haya entre un caracter delimitador que tu le pases. Ej
Dim vValores() as string
vValores=split(strV,",")

Luego puedes concatenar los valores de cada vector en un bucle:
for i=0 to numerocampos
sSql=ssql & vCampos(i) & "=" & vValores(i)
next

Espero que te sirva, saludos!
__________________
Sr.Propio
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 06:11.