• Martes 16 de Julio de 2024, 01:07

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - lydia_watanabe

Páginas: [1] 2
1
SQL Server / Contando registros
« en: Martes 26 de Enero de 2010, 11:02 »
Hola a todos.

Tengo una consulta tal que así

Código: SQL
  1. INSERT INTO aaaaa (IdExpediente, FIn)
  2. SELECT COUNT(*), Format(finicio,""mm/yyyy"")
  3. FROM Seguimientos
  4. WHERE Seguimientos.Tipo = 13
  5.  

Mediante la cual, obtengo unos resultado que son correctos.

La cuestión es ¿que tengo que hacer, para que cuando no obtenga resultados me inserte un 0 en lugar de dejarlo vacio?

Muchas gracias por la ayuda.

2
C/C++ / C++ frente a Java
« en: Viernes 3 de Abril de 2009, 20:03 »
¿Que ventajas y desventajas creen ustedes que hay al programar con C++ y Java? Me vienen alguna muy claras a la cabeza, pero seguro que hay más

3
C/C++ / Ventanas, botones y demás
« en: Sábado 28 de Marzo de 2009, 12:08 »
Hola a todos.

Tengo una aplicación en C++ para Linux y me gustaría hacer que tenga una interfaz bonita y más manejable que el texto plano.

¿Alguien me puede decir que debo instalar y donde puedo consultar documentación?

Gracias

4
C/C++ / Re: Conjuntos
« en: Martes 24 de Marzo de 2009, 17:20 »
Citar
¿No te sirve?:

vecdiff = setdiff;

Se supone que no, da un error de tipos (o al menos a mi me da). Gracias por el consejo, ya veré que hago

5
C/C++ / Re: Conjuntos
« en: Martes 24 de Marzo de 2009, 16:28 »
Por cierto ¿hay alguna manera de pasar los valores de un conjunto a un vector sin necesidad de usar un bucle?

He probado con esto, pero me da un Segmentation Fault

Código: C++
  1. copy(setdiff.begin(), setdiff.end(), vecdiff.begin());
  2.  

Donde setdiff es un conjunto de entero previamente inicializado y vecdiff es un vector de enteros recién declarado.

6
C/C++ / Re: Conjuntos
« en: Martes 24 de Marzo de 2009, 14:19 »
Muchas gracias. Ya me parecía a mi que no podía estármelo imaginando.

7
C/C++ / Conjuntos
« en: Martes 24 de Marzo de 2009, 13:38 »
Hola

Estoy usando los conjuntos (set) de la STL y me gustaría hacer las siguientes operaciones própias de conjuntos: union, interseccion y diferencia.

Sé que esto ya lo he hecho antes y no sé porqué me parece que había funciones específicas para ello, pero leyendo la documentación no he encontrado nada ¿Existen métodos para hacer esto o son producto de mi imaginación?

8
Dudas informáticas / Latex
« en: Jueves 19 de Marzo de 2009, 22:27 »
Hola a todos.

Estoy escribiendo un documento en Latex y me han surgido algunas dudas y problemillas.

Para empezar tengo un pequeño problema. Cuando comienzo un capítulo, sección o subsección, el primer párrafo nunca aparece sangrado y no sé porque ocurre.

Por otro lado, me han surgido un par de dudillas con respecto al estilo de lo capítulos.

Lo primero es que al empezar un capítulo nuevo, entre el título del capítulo y la parte superior de la hoja, queda un espacio en blanco bastante amplio y me gustaría saber si es posible dismunuir este espacio, pues me resulta escesivo.

Lo segundo también viene referido al tema de los capítulos. Al empezar un capítulo siempre aparece Capítulo X (en mi caso Chapter X porque estoy trabajando en inglés) y debajo él título del capítulo en cuestion y lo que me gustaría saber es si es posible eliminar lo de Capítulo X y que apareciera solamente el nombre del capítulo, sin que por supuesto afectase al índice.

Aquí les dejo una muestra de una página con anotación para que vean más claro a que me refiero.



Y esta es la cabecera de mi documento:

Código: Text
  1. documentclass[12pt,a4paper,titlepage,twoside,openright]{report}
  2. usepackage[utf8]{inputenc}
  3. usepackage[pdftex]{graphicx}
  4. usepackage{float}
  5. usepackage{colortbl}
  6. usepackage{tabulary}
  7. usepackage{url}
  8. usepackage[colorlinks,linkcolor=black,citecolor=black,urlcolor=blue,filecolor=urlcolor]{hyperref}
  9.  
  10. setlengthparindent{0.40in}
  11. setlengthparskip{0.15in}
  12. setlength extheight{21.5cm}
  13. setlength opmargin{0cm}
  14.  
  15. definecolor{grey}{rgb}{0.8,0.8,0.8}
  16.  

9
Otras Bases de Datos / SQLite y C++
« en: Miércoles 18 de Marzo de 2009, 18:21 »
Hola

Estoy trabajando en una aplicación en C++ y usando una BD de SQLite y tengo una pequeña duda.

Siguiendo un ejemplo de la página oficial de SQLite, he hecho este código

Código: C++
  1.  /**************************************************************************/
  2. int Callback(void *NotUsed, int argc, char **argv, char **azColName){
  3.    
  4.    //Los que sea que haga
  5.    return 0;
  6. }
  7.    
  8. /**************************************************************************/
  9. Users::Users(string name, string pass){
  10.    sqlite3* db;
  11.    char *zErrMsg = 0;
  12.    
  13.    int rc = sqlite3_open("bd/project.bd", &db);
  14.    if (rc != SQLITE_OK){
  15.       cout << sqlite3_errmsg(db) << endl << endl;
  16.       sqlite3_close(db);
  17.       exit(1);
  18.    }
  19.    
  20.    string select = "SELECT * FROM user WHERE username='" + name + "' and userpass='" + pass + "'";
  21.    rc = sqlite3_exec(db, select.c_str(), Callback, 0, &zErrMsg);
  22.    if (rc != SQLITE_OK){
  23.       fprintf(stderr, "SQL error: %sn", zErrMsg);
  24.       sqlite3_free(zErrMsg);
  25.    }
  26.    
  27.    sqlite3_close(db);
  28. }
  29.  

Cuando lo ejecuto funciona perfectamente. Si existe el usuario, se muestra y si no existe no, el problema es si quiero hacer algo en especal cuando este usuario no existe, pues aparentemente no hay ningún tipo de variable o función que me lo indique, pero por lógica debería de haberla.

Así pues ¿existe alguna variable o función que me diga si la consulta a sido vacía?

10
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 21:24 »
Muchiiiiiiiiiisimas gracias, por fin puedo seguir tirando para adelante y la próxima vez que necesite usar de esto ya se como va el tema.

11
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 19:11 »
Dios, a ver si me aclaro ¿cómo es que debería invocar a la función sqlite3_exec? (siento ser tan plasta, creo que empiezo a saturarme y eso no es bueno :brickwall: )

12
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 18:04 »
Gracias, encontré el problema y lo solucioné, pero no me dio tiempo de decirlo por aquí. Y ahora se me plantea otra cuestión (que ojalá sea la última, porque si no creo que me volveré loca).

Siguiendo el ejemplo que me has puesto he hecho lo siguiente:

Código: C++
  1. int Users::Callback(void *NotUsed, int argc, char **argv, char **azColName){
  2.    Users *thisUser = (Users*)NotUsed;
  3.  
  4.    thisUser->Ident = atoi(argv[0]);    // Ident es un integer
  5.  
  6.    return 0;
  7. }
  8.  

Compila, pero al ejecutar da un Segmentation Fault.

13
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 16:21 »
La idea es precisamente la de darle valores a miembros de la clase con los valores obtenidos de las consultas, la cuestión es que cuando compilo, si declaro la función static me da este error:

Código: Text
  1. error: no se puede declarar que la función miembro ‘static int Users::Callback(void*, int, char**, char**)’ tenga enlazado estático
  2.  

y si no es static, pues me da el error que puse más arriba.

14
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 15:07 »
Eternal Idol gracias por responder.

Con respecto al problema 1, la verdad es que consulté la documentación, pero no vi nada, sin embargo, podría ser que estuviera en alguna parte y que a mi se me hubiese pasado.

Con respecto al problema 2, entiendo lo que me dices, pero no tengo ni idea de como se hace. Nunca he usado el puntero this y estoy un poco perdida. Así pues ¿que modificaciones debería hacer si mi código de partida es este y como debería trabajar con sus parámetros?

Código: C++
  1. static int Users::Callback(void *NotUsed, int argc, char **argv, char **azColName){
  2.  
  3.    cout << "Ident = " << argv[0] << "     TypeUser = " << argv[3] << endl;
  4.    return 0;
  5. }
  6.  

Gracias

15
C/C++ / Re: C++ y SQL
« en: Domingo 15 de Marzo de 2009, 02:25 »
Dos nuevas preguntas, una es más de SQLite y la otra más de C++, pero ojalá que alguien me las sepa contestar.

Siguiendo un sencillo ejemplo de la página oficial de SQLite donde se muestra de forma muy básica como se conecta una BD, se hace una consultas y se cierra la conexión, he creado consulta simple en la que se busca en la BD un nombre de usuario y una clave introducidos al ejecutar el programa y se muestra el Identificador y el tipo de usuario.

Código: C++
  1. /**************************************************************************/
  2. int Callback(void *NotUsed, int argc, char **argv, char **azColName){
  3.  
  4.    cout << "Ident = " << argv[0] << "     TypeUser = " << argv[3] << endl;
  5.    return 0;
  6. }
  7.  
  8. /**************************************************************************/
  9. Users::Users(string name, string pass){
  10.    sqlite3* db;
  11.    char *zErrMsg = 0;
  12.  
  13.    sqlite3_open("bd/project.bd", &db);
  14.    if (sqlite3_errcode(db)!=0){
  15.       cout << sqlite3_errmsg(db) << endl << endl;
  16.       sqlite3_close(db);
  17.       exit(1);
  18.    }
  19.  
  20.    string select = "SELECT * FROM user WHERE username='" + name + "' and userpass='" + pass + "'";
  21.    int rc = sqlite3_exec(db, select.c_str(), Callback, 0, &zErrMsg);
  22.    if (rc != SQLITE_OK){
  23.       fprintf(stderr, "SQL error: %sn", zErrMsg);
  24.       sqlite3_free(zErrMsg);
  25.    }
  26.  
  27.    sqlite3_close(db);
  28. }
  29.  

Problema 1
Cuando lo ejecuto funciona perfectamente. Si existe el usuario, se muestra y si no existe no, el problema es si quiero hacer algo en especal cuando este usuario no existe, pues aparentemente no hay ningún tipo de variable o función que me lo indique, pero por lógica debería de haberla. ¿Existe alguna manera de saber si se han obtenido valores o no en la consulta?

Problema 2
Estoy trabajando con clases y por tanto me interesaría que la función Callback fuera un miembro de la clase para poder manejar ciertos datos, pero al compilar me da el siguiente error:

Código: Text
  1. error: el argumento de tipo ‘int (Users::)(void*, int, char**, char**)’ no coincide con ‘int (*)(void*, int, char**, char**)’
  2.  

¿Hay alguna manera de que la función pertenezca a la clase?

16
C/C++ / Re: me resolveis esta duda sobre registros?
« en: Sábado 14 de Marzo de 2009, 19:35 »
Básicamente el problema está en que no le estás indicando que tipo de estructura quieres devolver. Tendrías que declarar la función de esta manera:

Código: C++
  1. Tciudad MiFuncion(){
  2.    .......
  3. }
  4.  

17
C/C++ / Re: C++ y SQL
« en: Sábado 14 de Marzo de 2009, 18:39 »
Más problemas (cómo era de esperar).

Téngo un código sencillo y totalmente estúpido de prueba:

Código: C++
  1. #include <stdio.h>
  2. #include <sqlite3.h>
  3.  
  4. int main(int argc, char*argv[]){
  5.  
  6.    sqlite3* db;
  7.    sqlite3_open("bd/prueba.bd", &db);
  8.    if (sqlite3_errcode(db) != 0)
  9.       printf("%sn",sqlite3_errmsg(db));
  10.    sqlite3_close(db);
  11. }
  12.  

Nada del otro mundo, conecta con la BD, comprueba errores y cierra, pero me falla.

Código: Text
  1. bd.C:(.text+0xa0): undefined reference to `sqlite3_open'
  2. bd.C:(.text+0xab): undefined reference to `sqlite3_errcode'
  3. bd.C:(.text+0xbf): undefined reference to `sqlite3_errmsg'
  4. bd.C:(.text+0xd2): undefined reference to `sqlite3_close'
  5.  

No sé si tengo que incluir alguna otra librería en el código (que se supone que no) o si se debe a otra cosa (que será lo más probable).

Actualizado.- Despues de ponerme a investigar un poquillo más en profundida, descubrí que el problema estaba al compilar

Código: Text
  1. g++ -lsqlite3 bd.C
  2.  

Espero que mis dudas y mis propias respuestas les sirvan a otros también

18
C/C++ / C++ y SQL
« en: Sábado 14 de Marzo de 2009, 14:00 »
Hola a todos

Estoy trabajando en una aplicación en c++ (trabajando en Linux), la cual tiene que conectar a una base de datos (BD) usando SQLite3. La BD está creada, ahora mi problema es que no sé que librería debo incluir para poder trabajar con ella.

Según un ejemplo que he encontrado era tan sencillo como poner

Código: C++
  1. #include "sqlite3.h"
  2.  

o también

Código: C++
  1. #include <sqlite3.h>
  2.  

Pero al compilar me da el típico error de que no existe

Código: Text
  1. sqlite3.h: No existe el fichero ó directorio
  2.  

¿Alguien tiene idea de como puedo incluir la librería? Muchas gracias

EI: juntando mensajes.

Problema solucionado, hay que instalar libsqlite3-dev que me faltaba.

19
C/C++ / Re: Escribiendo en un fichero
« en: Miércoles 11 de Marzo de 2009, 12:50 »
Hombre, como solución no está mal, pero aunque este ejemplo es sencillo sólo con tres lineas, se supone que el archivo será sustancialmente mayor y sinceramente no me parece una buena opción, pues sería mucho trabajo extra y en muchos de los casos innecesario, pues hacer la escritura, ya no es necesario seguir leyendo el archivo, porque se han dado las condiciones necesarias.

20
Otras Bases de Datos / Re: Bases de Datos con SQLite
« en: Martes 10 de Marzo de 2009, 19:18 »
Problema solucionado, simplemente hay que llamar al gestor añadiendo el nombre de la BD

Código: Text
  1. sqlite3 nombre_bd
  2.  

Ahora otro problema. Tengo una tabla con 2 columnas y quiero que una de ellas tome valores concretos de una lista (según la documentación se puede hacer). Para crear la tabla escribo:

Código: Text
  1. CREATE TABLE "tabla1" ("col1" INTEGER PRIMARY KEY NOT NULL, "col2" TEXT CHECK ('op1', 'op2'));
  2.  

Pero esto me da un error referente a las opciones

Código: Text
  1. SQL error: near ",": syntax error
  2.  

Alguien me puede decir cual es el problema y como solucionarlo

21
Otras Bases de Datos / Bases de Datos con SQLite
« en: Martes 10 de Marzo de 2009, 17:18 »
Hola a todos

Tengo una BD en SQLite y quisiera trabajar con ella desde consola, la cuestión es que cuando abro el intérprete, no sé que hacer para conectar con la BD.

¿Alguien me puede decir que debo hacer? gracias

22
C/C++ / Escribiendo en un fichero
« en: Lunes 9 de Marzo de 2009, 23:08 »
Hola a todos

En una aplicación que estoy haciendo tengo que escribir en un fichero, pero tengo un problema.

La situación es la siguiente, tengo un fichero ya creado, por ejemplo este:

Código: Text
  1. 1       100     (1,8,3)
  2. 4       20      ()
  3. 2       40      (2,6)
  4.  

Y se me presentan dos situaciones, la de escribir al final de una linea y la de sobreescribir un dato.

Supongamos la situación 1 que la de escribir al final de una linea:

Código: C++
  1. fstream Fich("students.txt", ios::in | ios::out);
  2.  
  3. // Va leyendo los datos, hace diversas cosas con ellas y llega al final de la linea
  4.  
  5. long lon = Fich.tellg();
  6. Fich.seekp(lon, ios::beg);
  7. Fich << " OK" << endl;
  8.  

Al hacer esto obtengo como resultado lo siguiente:

Código: Text
  1. 1       100     (1,8,3) OK
  2. 0       ()
  3. 2       40      (2,6)
  4.  

Lógicamente no es el resultado que esperaba pues he perdido parte de la informacón de la segunda linea y eso no me intersa. ¿Qué puedo hacer para solucionar este problema?

Con respecto a la segunda situación, la de sustituir un valor, lo que me interesa es borrar un valor, por ejemplo el 100, del fichero y en base a unos parámetros o poner un valor distinto o no poner nada, lo que quedaría algo así:

No poner nada
Código: Text
  1. 1       (1,8,3)
  2. 4       20      ()
  3. 2       40      (2,6)
  4.  

Sustituir por otro valor
Código: Text
  1. 1       12     (1,8,3)
  2. 4       20      ()
  3. 2       40      (2,6)
  4.  

¿Sería esto posible? cómo lo puedo hacer.

23
C/C++ / Re: Leer de pantalla
« en: Martes 3 de Marzo de 2009, 21:19 »
Bueno, yo misma me he solucionado el problema (aunque ahora tengo otro problema que comento al final) y por si alguien llega a tener la misma duda, lo único que hay que hacer es sustituir la linea

Código: C++
  1. cin >> texto
  2.  

por esto

Código: C++
  1. getline(cin, texto);
  2.  

El problema que me surge ahora es que el cursor no se queda esperando a que escriba algo, sino que se lo salta olímpicamente.

24
C/C++ / Leer de pantalla
« en: Martes 3 de Marzo de 2009, 21:11 »
Hola a todos, estoy enfrascada en una aplicación que entre las muchas cosas que hace, recoge un texto por pantalla y más tarde lo muestra.

El código es muy sencillo

Código: C++
  1. string texto;
  2. cin >> texto;
  3.  
  4. cout << texto << endl;
  5.  

El problema que tengo es que me gustaría que el usuario pudiera escribir una frase más con espacios, por ejemplo

Código: Text
  1. El niño tiene hambre
  2.  

Pero al leer la frase lo único que se guarda en la variable texto es El.

¿Qué puedo hacer para que se almacene la frase completa?

25
C/C++ / Re: Vectores
« en: Martes 3 de Febrero de 2009, 19:46 »
Por cieto, teniendo el vector inicializado y sin saber exactamente cuantos elementos tengo ¿hay alguna función que me lo diga?

Por otro lado, usando la STL ¿hay alguna manera sencilla de inicializar el vector tal y como lo he hecho con VEC_STRING?

Gracias.

Páginas: [1] 2