Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   instruccion de sql con una bd de access (http://www.forosdelweb.com/f29/instruccion-sql-con-bd-access-480589/)

cold snap 11/04/2007 13:43

instruccion de sql con una bd de access
 
Hola, trabajo en una aplicacion con vb2005 en la cual integro una bd de access, el problema es que me da un error, que es el siguiente

Error 1 Demasiados argumentos para 'Public Overridable Overloads Function FillByDepto(dataTable As DSDepto.T_DeptoDataTable) As Integer'.

en realidad lo habia trabajado con una bd de sql que viene integrado en el visual estudio 2005 y no me habia dado problemas, me imagino que el error esta desde el dataset que cree en el cual cree una consulta para poder ver algunos datos de la tabla, el error me da en el siguiente codigo

Private Sub txtDeptosBusqueda_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDeptosBusqueda.TextChanged
T_DeptoTableAdapter.FillByDepto(DSDepto.T_Depto, "%" & txtDeptosBusqueda.Text & "%")
End Sub

y la instruccion de sql es

SELECT IdDepto, Depto
FROM T_Depto
WHERE (Depto LIKE '@Depto')

La pregunta es, si estoy trabajando con una bd de access que instrucciones debo colocar para que me funciones bien la instruccion anterior...

Gracias como se pueden dar cuenta estoy emprezando en esto...

juantux 11/04/2007 14:30

Re: instruccion de sql con una bd de access
 
Estimado,

lo que sucede es que la consulta si esta dentro de un procedimiento almacenado de sql server, te va a funcionar bien porque adoptaria una forma como esta:

Código:


create procedure PA_ejemplo
(

      @Depto      varchar(20)

)

AS

SELECT IdDepto, Depto
FROM T_Depto
WHERE (Depto LIKE @Depto)

GO

Pero debido a que access no trabaja con procedimientos almacenados, debemos buscar una alternativa a tu consulta con parametros. En access al crear una consulta, tu puedes modificarla en vista codigo y agregarle parametros a esa consulta, por ejemplo:

Código:

SELECT IdDepto, Depto
FROM T_Depto
WHERE Depto LIKE [varLike];

Donde [varLike] representa el parametro que le pasamos a la consulta. Y para ejecutar esa consulta desde visual basic net, te recomiendo que visites el siguiente LINK para no perderte demasiado:

h t t p : / / w w w.elguille.info/colabora/puntoNET/PabloTilli_ConsultasEnAccess.htm


Espero haberte guiado un poco....

cold snap 11/04/2007 14:51

Re: instruccion de sql con una bd de access
 
gracias por la respuesta, lo voy a probar y te cuento a que llegue!!!

Saludos...

erick_arcini 12/04/2007 11:05

Re: instruccion de sql con una bd de access
 
Prueba cambiando esta linea:

Código:

T_DeptoTableAdapter.FillByDepto(DSDepto.T_Depto, "%" & txtDeptosBusqueda.Text & "%")
por esta:

Código:

T_DeptoTableAdapter.FillByDepto(DSDepto.T_Depto, "*" & txtDeptosBusqueda.Text & "*")

juantux 13/04/2007 11:50

Re: instruccion de sql con una bd de access
 
No creo que funcione con esos cambios, dado que cold tiene una instruccion del tipo:

Código:

SELECT IdDepto, Depto
FROM T_Depto
WHERE (Depto LIKE '@Depto')

Donde aparece un @ representando a un procedimiento almacenado de sql server. Y llevar eso a Microsoft Access no es tan simple como cambiar un '%' por un '*'. A menos claro que cold tenga definidas las funciones en la capa de negocios y concionantes de motor de datos en la acapa de acceso a datos, donde el cambio seria muy simple hacerlo. Creo yo... espero haber aportado un poco mas... con mis humildes conocimientos. :-)

erick_arcini 13/04/2007 15:25

Re: instruccion de sql con una bd de access
 
Cita:

Iniciado por juantux (Mensaje 1966806)
No creo que funcione con esos cambios, dado que cold tiene una instruccion del tipo:

Código:

SELECT IdDepto, Depto
FROM T_Depto
WHERE (Depto LIKE '@Depto')

Donde aparece un @ representando a un procedimiento almacenado de sql server. Y llevar eso a Microsoft Access no es tan simple como cambiar un '%' por un '*'. A menos claro que cold tenga definidas las funciones en la capa de negocios y concionantes de motor de datos en la acapa de acceso a datos, donde el cambio seria muy simple hacerlo. Creo yo... espero haber aportado un poco mas... con mis humildes conocimientos. :-)

Pues con tus humildes conocimientos puede que tengas razón, es más, la tienes, pero en ningún momento esta indicando que esta utilizando un procedimiento almacenado, esa instrucción en sql que acabas de colocar también puede ser tomado como un parámetro de una clase, supongo que esta utilizando un oledbclient de ser así, lo que había indicado es cierto además de que el '%' no es admitido por Access que veo es el problema, para eso tendría que sustituirlo por '*' y si no es así, entonces que explique bien el problema, y que coloque mas código para ver en donde mas puede tener una equivocación por que y mis "humildes conocimientos" no pueden ser aplicados.

erick_arcini 13/04/2007 15:29

Re: instruccion de sql con una bd de access
 
Cita:

Donde aparece un @ representando a un procedimiento almacenado de sql server.
Como lo explique arriba no solo representa un procedimiento almacenado, si estas usando bases de datos en .net existe el método .Parameters("@parametro", identificador) << que es donde se pueden insertar parametros directo a una consulta SQL, en msdn encontraras más al respecto, saludos.

juantux 13/04/2007 15:38

Re: instruccion de sql con una bd de access
 
Tienes toda la razon amigo.. buena suerte...

cold snap 17/04/2007 07:53

Re: instruccion de sql con una bd de access
 
Q tal señore, lamento si esto ha sido de discusion, pero en una parte q bueno ya que cada quien expone su experiencia para ayudar a los demas... creo q hice mal por q me ausente un poco y no le di seguimiento a mi problema y vuelvo ahora esperando me puedan seguir ayudando y pido disculpas por ello...

En efecto, la coneccion esta hecha a base de Archivo de base de datos de Microsoft Access (OLE DB), pues tengo la base de datos de access conectando a visual basic 2005... inicialmente la aplicacion la estaba trabajando con sql incorporado del mismo visual, pero no encontre informacion de enlace de datos para crystal reports y mejor lo estoy probando ha hacer por esta via, ahora bien... como comente en el primer texto, estoy tratando de aplicar las mismas instrucciones q se utilizan en sql a la bd de access, pero como ya he leido por las explicaciones y los consejos q me dan, eso no va a dar resultados... de la bd de access, creé un dataset para insetar en un formulario e insertar datos para guardarlos en la tabla correspondiente, en el mismo dataset, creé un nuevo query, que seria el de la busqueda de datos para poder utilizarlos en otro formulario para escoger el dato que necesito y este guardarlo en otra tabla... el problema es que estoy utilizando las mismas instrucciones que aprendi de sql a access y pues ya se sabe... el error que me da es este

Error 1 Demasiados argumentos para 'Public Overridable Overloads Function FillByDepto(dataTable As DSDepto.T_DeptoDataTable) As Integer'.

y ya prove con los "*" y no me funciona, entonces no se si me podrian explicar un poquito mas acerca de todo esto o si necesitan algun dato especifico que me pregunten ya no se que mas decir...

Saludos y muchas gracias por la atencion prestada...

Me doy cuenta que si conocen bastante de todo este relajo y la verdad es que es de felicitar...

erick_arcini 17/04/2007 08:44

Re: instruccion de sql con una bd de access
 
viendo el error, al parecer, o estas mandando de mas argumentos o te hacen falta, a considerar que los argumentos son los datos por columna que estas mandando.

juantux 18/04/2007 09:59

Re: instruccion de sql con una bd de access
 
Mister, yo creo que lo mejor que puedes hacer es modificar un poco tu diseño y deja de trabajar con dataset tipificados, y trata de controlar mas tu aplicacion a traves del codigo... es decir creando clases, propiedades y funciones dentro de las clases que te devuelvan datos desconectados del servidor. Si estas interesado en aprender sobre esto, puede darte una mano con la programacion en N capas, no hay problema.

Suerte.


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.