![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
consultas sql en delphi 2007
hola tengo una ventana que me tira los datos de un vendedor, en el cual ingrreso como parametro el 'idvend' y 'las fechas desde y hasta'
utilizo un -TADOConnection para conectarme a la base de datos - TDataSource - TADODataSet en donde esta cargada la consulta sql - DBGrid para q visualize los datos - y un TBotton en el cual quier que cuando lo aprete me muestre los datos, filtrando los parametros que describi previamente... como lo hago??? |
|
#2
|
||||
|
||||
|
Hola nolo,
Bienvenido a Clubdelphi. Como eres nuevo, te recomendaría que te tomes unos minutos para leer la guia de estilo. Con respecto a tu inquietud, ¿Cuál es tu duda realmente? ¿Tienes problemas para conectar o enlazar los componentes? ¿tu consulta SQL te arroja un error? Si es así, ¿Cuál y dónde? Esto te lo pregunto porque al comienzo empiezas a describir todo, y al parecer que ya lo tienes hecho. Al menos eso parece indicar esta parte de tu mensaje: Cita:
Si tienes algo de código sería útil que lo dieras a conocer. Saludos, |
|
#3
|
|||
|
|||
|
consultas sql en delphi 2007
hola amigo gracias por la bienvenida y disculpa por empresarme mal..
la ventana ya lo tengo todo echo, y enlazado con las bases de datos y todo, mi problema es que cuando apretieto el evento TBotton no me tira nada el DBGrid en el TButton tengo este codigo var sQ: WideString; begin adsReporte.Open; sQ := 'SELECT V.fDocumento, C.sRazonSocial, V.idTipoDoc, ((V.rTotBruto+V.rTotDescuentos)*TD.iAplicStock*(-1)) as totBruto,'+ 'RIGHT('+QuotedStr('0000')+'+CAST(V.idPV AS VARCHAR),4)+'+QuotedStr(' - ')+ '+ RIGHT('+QuotedStr('00000000')+'+CAST(V.idNumDoc AS VARCHAR),8) as Numero, '+ '( SELECT SUM((rSubBruto+rSubDescuentos)*TID.iAplicStock*(-1)*(rComisionAPagar)) AS Comision'+ 'FROM VentasItems VI, TiposDoc TID'+ 'WHERE VI.idTipoDoc = TID.idTipoDoc'+ 'AND VI.idTipoDoc = V.idTipoDoc'+ 'AND VI.idPV = V.idPV'+ 'AND VI.idNumdoc = V.idNumDoc ) AS Comision'+ 'FROM Ventas V'+ 'INNER JOIN Clientes C ON V.idCliente = C.idCliente'+ 'INNER JOIN TiposDoc TD ON V.idTipoDoc = TD.idTipoDoc'+ 'WHERE V.fDocumento >= dtpDesde.DateTime'+ 'AND V.fDocumento <= dtpHasta.DateTime' + 'AND V.idVendedor := edtidVendedor.AsInteger'+ 'AND V.bAnulado = 0'+ 'ORDER BY V.idTipoDoc ASC, V.idPV ASC, V.idNumDoc ASC'+ 'adsDatos1.CommandText := sQ;'; {adsReporte.Parameters.ParamByName('idVendedor').Value := TEdit1.AsInteger; adsReporte.Parameters.ParamByName('FechaDesde').Value := dtpDesde.DateTime; adsReporte.Parameters.ParamByName('FechaHasta').Value := dtpHasta.DateTime} //adsReporte.CommandText := sQ; //adsReporte.Close; soy novato en esto, me se bastante sql pero poco delphi jeje agradeceria tu ayuda |
|
#4
|
||||
|
||||
|
Hola nolo,
Lo que veo, de vista rápida, es que primero haces el Open, luego le indicas la consulta y al final un Close. El orden es en realidad al contrario. 1. Cerrar el DataSet 2. Armar consulta 3. Abrirlo Por otro lado, para escribir código delphi y se resalte, usa las etiquetas delphi. De este modo: [delphi] tu código aqui... [/delphi] Saludos, |
|
#5
|
|||
|
|||
|
bueno disculpas nuevamente, este seria mi codigo
si primero cierro el dataset y despues lo abro como decis vos, me tira un errorcito, la unica forma de que por lo menos se ejecute era ponerlo de esa forma a pesar de que yo tenia entendido de que es como tu dices
en fin mi pregunta es, si esta bien el codigo en el TBotton o si es que falta algo o sobra, porque no me tira nada el DBGrid |
|
#6
|
||||
|
||||
|
Ummm, veamos, debería funcionarte de este modo:
Acabo de releer tu post inicial. ¿Empleas TADODataSet? No se si tendrá algo que ver... pero prueba con un TADOQuery. Saludos, |
|
#7
|
|||
|
|||
|
si con esa estructura la probe al principio, es la que todos usan, pero tampco me andubo che, ni usando TADOQuery... que macana
bueno tratare de encoontrar la solucion, gracias por tu tiempo.. saludos |
|
#8
|
||||
|
||||
|
¿Te aseguraste de que estén bien enlazados los componentes? ¿Te aseguraste de que el TADOConection esté conectado y que los demás controles estén activados?
¿Podrías indicarnos como estás llevando la conexión y el enlace de los componentes? ¿Te arroja un error? Si es así, cual y en que línea. Necesitaríamos conocer más detalle de tu situación para poder ayudarte. Cuanto más información nos proporciones más fácil será hallar el problema y su solución (o en su defecto, alguna alternativa). No te vamos a cobrar por la cantidad de líneas que escribas. Sientete en confianza. Saludos, |
|
#9
|
|||
|
|||
|
Mira estos son los valores (a mi entender mas importantes) que tengo...
Creo que esta todo bien enlazado TADOConnection - Connected: True - Connection String: Provider=SQL.......... (Verificado tiene coneccion) - DefaultDataBase: (mi base de datos) - KeepConnectio: True - Name: ..... TADODataSet - CommandText: mi codigo sql - ConnectionString: no tiene nada porque lo conecte asi: - Linkage (Connection: TADOConnection) esta bien esto?? - Parameters: los 3 que tiene estan verificados - Active: True TDataSource -Action, Input y Visual - Enabled: True - DataSet: TADODataSet DBGrid - Action y Visual - Enabled: True - Visible: True - DataSource: TDataSource El problema no es que me tira error, el problema es que no me tira nada cuando apreto el TBotton.. el contenido del TBotton ya te lo puse mas arriba... |
|
#10
|
|||
|
|||
|
y si lo hago segun tu estructura quedaria asi no??
me tira error en la segunda linea, osea aca adsReporte.SQL.Clear; |
|
#11
|
||||
|
||||
|
Hola
No veo parametros por ningun lado. Saludos
__________________
Siempre Novato Última edición por Caral fecha: 25-10-2008 a las 14:42:18. |
|
#12
|
||||
|
||||
|
Tal vez la pregunta que diré es un tanto tonta pero es necesaria: ¿Te aseguraste de que la consulta devuelve datos?
Prueba lanzar esta misma consulta desde el editor del motor que empleas. O si no prueba con esto:
Y disculpa mi insistencia, pero creo que es conveniente emplear el TADOQuery, que es el componente más conveniente. Saludos, |
|
#13
|
||||
|
||||
|
Hola
Ya vi los parametros: Saludos
__________________
Siempre Novato |
|
#14
|
||||
|
||||
|
Hola
Estoy mas ciego que una cabra. ![]() Nunca he trabajado con dataset, asi que supongo que sera asi, no me hagan mucho caso. Saludos
__________________
Siempre Novato |
|
#15
|
||||
|
||||
|
Cita:
Edite un poco el código, esa sería la manera más adecuada de realizar la consulta que deseas. Y debería funcionar correctamente. Si te marca error en la linea "SQL.Clear", por favor, dinos cuál error es el que te marca para saber cuál es el problema.
__________________
|
|
#16
|
|||
|
|||
|
Hola amigo tampoco anda, y si verifique la consulta me tira datos en el motor uso sql server 2008...
Tendrias un proyecto delphi por ahi de como hacer consultas, uno sencillo a modo de ejemplo... y que utilice aunque sea un parametro.... te lo agradeceria asi lo voy mirando.. |
|
#17
|
|||
|
|||
|
mira estos son los errores que me tira el SQL.Clear
[DCC Error] EjemploFamilias.pas(38): E2003 Undeclared identifier: 'SQL' [DCC Error] EjemploFamilias.pas(39): E2066 Missing operator or semicolon [DCC Error] EjemploFamilias.pas(40): E2066 Missing operator or semicolon [DCC Error] EjemploFamilias.pas(41): E2066 Missing operator or semicolon [DCC Error] EjemploFamilias.pas(42): E2003 Undeclared identifier: 'AsInteger' [DCC Error] EjemploFamilias.pas(43): E2066 Missing operator or semicolon [DCC Error] Project1.dpr(5): F2063 Could not compile used unit 'EjemploFamilias.pas' |
|
#18
|
||||
|
||||
|
Es evidente que estás empleando un componente distinto a TADOQuery, si te da ese error en la línea SQL.Clear es porque el componentes que usas no es un TADOQuery o algún otro componente TXxxQuery.
Por otro lado los errores "E2066 Missing operator or semicolon" se deben a que falta el punto y coma al final de la sentencia. El error AsInteger se debe a que el componente TEdit no posee esta propiedad. A menos que se trate de un componente de terceros (intuyo que es un TEdit de la biblioteca JEDI) que disponga de dicho método o propiedad no va a funcionar. ContraVeneno nos podría aclarar este asunto. Mientras tanto, si tienes el Edit, puedes hacer esto:
En ves del Edit1.AsInteger Saludos, |
|
#19
|
|||
|
|||
|
y este error porque es??
Project Project1.exe raised exception class EOLeException with message 'Objeto Parameter mas definido. Se proporciono informacion incompleta o incoherente' ya le arregle lo que me dijiste del parametro pero de cualquiera de las dos formas me tira este error cuando ingreso el parametro y lo doy al TBotton |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Delphi 2007 for win32 o BSD 2007? | AzidRain | La Taberna | 6 | 29-07-2008 20:32:16 |
| Lanzamiento Delphi 2007, PHP y JBuilder 2007 R2 Santiago - Chile | Andreano | Noticias | 4 | 14-05-2007 09:25:23 |
| Lanzamiento de Delphi 2007 y Delphi para PHP en México con David I | Andreano | Noticias | 13 | 27-02-2007 21:16:04 |
| Lanzamiento de Delphi 2007 y Delphi para PHP en Bogotá - Colombia | Andreano | Noticias | 9 | 25-02-2007 19:09:42 |
| Consultas SQL en Delphi | DaRkBoY | Oracle | 4 | 18-06-2003 15:26:43 |
|