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

busqueda en paradox y .net

Estas en el tema de busqueda en paradox y .net en el foro de Bases de Datos General en Foros del Web. hola tengo una aplicacion en .net que utiliza entre otras una conexion a tablas de paradox. la tabla de paradox tiene como 200.000 registros, y ...
  #1 (permalink)  
Antiguo 28/09/2011, 13:19
 
Fecha de Ingreso: diciembre-2010
Ubicación: barranquilla
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
busqueda en paradox y .net

hola tengo una aplicacion en .net que utiliza entre otras una conexion a tablas de paradox.
la tabla de paradox tiene como 200.000 registros, y cuando hago una consulta por un criterio encuentra el registro de inmediato, pero cuando hago la consulta con varios criterios este no encuentra el registro. de esta manera
1. busco el registro por codigo, y me muestra el resultado. Ok
2. busco el registro por primer nombre, segundo nombre, primer apellido y segundo apellido y me muestra algunos registros, pero hay veces que no muestra nada y yo se que el registro si esta. les dejo el codigo de la busqueda por ambos criterios

este es el primer ejemplo.. busqueda por criterio ficha
Try
' Declarar la conexión y abrir
Using cn As OdbcConnection = New OdbcConnection(sConn)

TxtFicha.Text = String.Format("{0:00000000}", Convert.ToInt32(TxtFicha.Text))

' Crear un DataAdapter y pasarle el comando para traer los registros
Dim da As New OdbcDataAdapter("SELECT personah.ficha,personah.hogar,personah.orden,perso nah.ape1,personah.ape2,personah.nom1,personah.nom2 ,personah.tipodoc,personah.documen,personah.fechan to,personas.puntaje FROM personah,personas WHERE personah.ficha='" & Trim(CStr(Me.TxtFicha.Text)) & "' and personah.ficha=personas.ficha AND PERSONAH.ORDEN=PERSONAS.ORDEN AND PersonaH.hogar=PersonaS.hogar", cn)
Me.oDataAdapter = New OdbcDataAdapter("SELECT fichah.ficha,fichah.direcc,fichah.nombarrio FROM fichah WHERE Fichah.ficha = '" & Trim(CStr(Me.TxtFicha.Text)) & "'", sConn)

' llenar el DataTable
da.Fill(DTABLE)

' enlazar el DataTable al BindingSource
BindingSource1.DataSource = DTABLE

' propiedades para el DataGridview .

Dim oCommBuild As OdbcCommandBuilder = New OdbcCommandBuilder(oDataAdapter)
Me.oDataSet = New DataSet
cn.Open()
Me.oDataAdapter.Fill(oDataSet, "FICHAH")
cn.Close()
Me.iPosicFilaActual = 0

Dim oDataRow As DataRow
oDataRow = Me.oDataSet.Tables("FICHAH").Rows(Me.iPosicFilaAct ual)
Me.TxtFichas.Text = CStr(oDataRow("ficha"))
Me.TxtDir.Text = CStr(oDataRow("direcc"))
Me.TxtBarrio.Text = CStr(oDataRow("nombarrio"))
Me.BtnGuardar.Enabled = True

With DataGridView1

'decimales en datagrid
Dim col As DataGridViewColumn = Me.DataGridView1.Columns("puntaje")
col.DefaultCellStyle.Format = "N2"
' opcional: Sin selección múltiple
.MultiSelect = False
' seleccioanr fila completa al hacer clic en un registro
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
' enlazar los controles
.DataSource = BindingSource1.DataSource
End With

End Using
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString)
'MsgBox("El numero de ficha no aparece", MsgBoxStyle.Information)
End Try


Segundo ejemplo este es el que me genera problemas

Try
' Declarar la conexión y abrir
Using cn As OdbcConnection = New OdbcConnection(sConn)

Dim N1 As String = Trim(CStr(Me.TxtNom1.Text))
Dim N2 As String = Trim(CStr(Me.TxtNom2.Text))
Dim A1 As String = Trim(CStr(Me.TxtApe1.Text))
Dim A2 As String = Trim(CStr(Me.TxtApe2.Text))

' Crear un DataAdapter y pasarle el comando para traer los registros
Dim da As New OdbcDataAdapter("SELECT personah.ficha,personah.hogar,personah.orden,perso nah.ape1,personah.ape2,personah.nom1,personah.nom2 ,personah.tipodoc,personah.documen,personah.fechan to,personas.puntaje FROM personah,personas WHERE personah.APE1 LIKE '" & A1 & "%' AND personah.APE2 LIKE '" & A2 & "%' AND personah.NOM1 LIKE '" & N1 & "%' AND personah.NOM2 LIKE '" & N2 & "%' and personah.ficha=personas.ficha AND PERSONAH.ORDEN=PERSONAS.ORDEN and personah.hogar=personas.hogar", cn)
Me.oDataAdapter = New OdbcDataAdapter("SELECT fichah.ficha,fichah.direcc,fichah.nombarrio FROM fichah,PERSONAH WHERE personah.APE1 LIKE '" & A1 & "%' AND personah.APE2 LIKE '" & A2 & "%' AND personah.NOM1 LIKE '" & N1 & "%' AND personah.NOM2 LIKE '" & N2 & "%' AND PERSONAH.FICHA=FICHAH.FICHA", sConn)
' llenar el DataTable
da.Fill(DTABLE)

' enlazar el DataTable al BindingSource
BindingSource1.DataSource = DTABLE

' propiedades para el DataGridview
With DataGridView1
'decimales en datagrid
Dim col As DataGridViewColumn = Me.DataGridView1.Columns("puntaje")
col.DefaultCellStyle.Format = "N2"

.EnableHeadersVisualStyles = True
' opcional: Sin selección múltiple
.MultiSelect = False
' seleccioanr fila completa al hacer clic en un registro
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
' enlazar los controles
.DataSource = BindingSource1.DataSource
End With

Dim oCommBuild As OdbcCommandBuilder = New OdbcCommandBuilder(oDataAdapter)
Me.oDataSet = New DataSet
cn.Open()
Me.oDataAdapter.Fill(oDataSet, "fichah")
cn.Close()
Me.iPosicFilaActual = 0

Dim oDataRow As DataRow
oDataRow = Me.oDataSet.Tables("fichah").Rows(Me.iPosicFilaAct ual)
Me.TxtFichas.Text = CStr(oDataRow("ficha"))
Me.TxtDir.Text = CStr(oDataRow("direcc"))
Me.TxtBarrio.Text = CStr(oDataRow("nombarrio"))
Me.BtnGuardar.Enabled = True
End Using
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

por favor ayudenme.. no se que hacer
  #2 (permalink)  
Antiguo 28/09/2011, 14:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: busqueda en paradox y .net

Estas usando condiciones And para tu busqueda por varios criterios lo que quiere decir que tiene que cumplir con tooooodas las condiciones para que te regrese datos...

saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 28/09/2011, 14:41
 
Fecha de Ingreso: diciembre-2010
Ubicación: barranquilla
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: busqueda en paradox y .net

Cita:
Iniciado por Libras Ver Mensaje
Estas usando condiciones And para tu busqueda por varios criterios lo que quiere decir que tiene que cumplir con tooooodas las condiciones para que te regrese datos...

saludos!!
si claro... debe cumplir todos los criterios
  #4 (permalink)  
Antiguo 28/09/2011, 14:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: busqueda en paradox y .net

ya probaste en imprimir en pantalla la consulta que estas mandando y ver si funciona en el manejador de base de datos??

otra cosa aqui:

' Crear un DataAdapter y pasarle el comando para traer los registros
Dim da As New OdbcDataAdapter("SELECT personah.ficha,personah.hogar,personah.orden,perso nah.ape1,personah.ape2,personah.nom1,personah.nom2 ,personah.tipodoc,personah.documen,personah.fechan to,personas.puntaje FROM personah,personas WHERE personah.APE1 LIKE '" & A1 & "%' AND personah.APE2 LIKE '" & A2 & "%' AND personah.NOM1 LIKE '" & N1 & "%' AND personah.NOM2 LIKE '" & N2 & "%' and personah.ficha=personas.ficha AND PERSONAH.ORDEN=PERSONAS.ORDEN and personah.hogar=personas.hogar", cn)
Me.oDataAdapter = New OdbcDataAdapter("SELECT fichah.ficha,fichah.direcc,fichah.nombarrio FROM fichah,PERSONAH WHERE personah.APE1 LIKE '" & A1 & "%' AND personah.APE2 LIKE '" & A2 & "%' AND personah.NOM1 LIKE '" & N1 & "%' AND personah.NOM2 LIKE '" & N2 & "%' AND PERSONAH.FICHA=FICHAH.FICHA", sConn)
' llenar el DataTable
da.Fill(DTABLE)

donde esta el
Me.fill(DTABLE) o no lo lleva??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 28/09/2011, 14:58
 
Fecha de Ingreso: diciembre-2010
Ubicación: barranquilla
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: busqueda en paradox y .net

no ese no lo lleva.. Me.fill(DTABLE), porque en el segundo adapter lo cargo de esta manera

Dim oCommBuild As OdbcCommandBuilder = New OdbcCommandBuilder(oDataAdapter)
Me.oDataSet = New DataSet
cn.Open()
Me.oDataAdapter.Fill(oDataSet, "fichah")

ese es un dataset que carga un datarow para cargar unos cuadros de texto.

Etiquetas: .net, paradox, visual
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 00:10.