Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - santiago.corso

#1
El programa me tiro un error acerca de una entrada no reconocida en el código.

Refiriendose a este pedazo de if (sqlite3_open("C:\ProgramData\PROISER\ISASPSUS\datastore\dsfile.db", &db) != SQLITE_OK) {
       printf("ERROR: can't open database: %s\n", sqlite3_errmsg(db));
       sqlite3_close(db);
       return found;`

Uso visual studio 2017 con las librerias correspondientes instaladas.

Les comparto todo el
   #include <stdio.h>
#include <string>
using std::string;
#include <sstream>
using std::stringstream;
using namespace std;
#include "C:\\Users\\santiago.corso\\Desktop\\sqlite-amalgamation-3240000 (1)\\sqlite-amalgamation-3240000\\sqlite3.h"
bool find_analysis(int _id)
{
   bool found = false;
   sqlite3* db;
   sqlite3_stmt* stmt;
   stringstream ss;

   // create sql statement string
   // if _id is not 0, search for id, otherwise print all IDs
   // this can also be achieved with the default sqlite3_bind* utilities
   if (_id) { ss << "select * from analysis where id = " << _id << ";"; }
   else { ss << "select * from analysis;"; }
   string sql(ss.str());

   //the resulting sql statement
   printf("sql: %s\n", sql.c_str());

   //get link to database object
   if (sqlite3_open("C:\\ProgramData\\PROISER\\ISASPSUS\\datastore\\dsfile.db", &db) != SQLITE_OK) {
       printf("ERROR: can't open database: %s\n", sqlite3_errmsg(db));
       sqlite3_close(db);
       return found;
   }

   // compile sql statement to binary
   if (sqlite3_prepare_v2(db, sql.c_str(), -1, &stmt, NULL) != SQLITE_OK) {
       printf("ERROR: while compiling sql: %s\n", sqlite3_errmsg(db));
       sqlite3_close(db);
       sqlite3_finalize(stmt);
       return found;
   }

   // execute sql statement, and while there are rows returned, print ID
   int ret_code = 0;
   while ((ret_code = sqlite3_step(stmt)) == SQLITE_ROW) {
       printf("TEST: ID = %d\n", sqlite3_column_int(stmt, 0));
       found = true;
   }
   if (ret_code != SQLITE_DONE) {
       //this error handling could be done better, but it works
       printf("ERROR: while performing sql: %s\n", sqlite3_errmsg(db));
       printf("ret_code = %d\n", ret_code);
   }

   printf("entry %s\n", found ? "found" : "not found");

   //release resources
   sqlite3_finalize(stmt);
   sqlite3_close(db);

   return found;
}

Este programa tendría dos partes. Una que lee cambios de una base de datos en sqlite3 y trata de leer desde el punto donde quedó por última vez(ya que esto sería para una tarea programada, la que se ejecutaría diariamente).Luego como segunda parte, que todavía no hice, es que una vez que obtenga eso nuevo, lo exporte a un excel.

Por otro lado, trato de hacer el mismo programa pero con otro código.Dentro de ese código hay una parte que cumpliría con el seek, para saber donde es el final de archivo.Cabe aclarar que la base de datos desafortunadamente no guarda cambios por fechas.
  void recordarposicion(){
int feof;
if (fseek(dsfile, 0L, SEEK_END)==feof)
printf("%i = fread(dsfile)" );
}




#2
Estuve tratando de usar C++ y hacer un programa que se instale como demonio, y que todos los días, a una hora determinada, vuelque los datos en un directorio concreto.
Hasta ahora lo que tengo es la parte de abrir el archivo que seria
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
    int i=0;
    char array[100];

        char caracteres[100];
        FILE *archivo;
        archivo = fopen("C:\ProgramData\PROISER\ISASPSUS\datastore\dsfile.db","r");
        while (feof(archivo) == 0)
        {
                fgets(caracteres,100,archivo);
                i++;
                }
                return 0;
}



Ahora lo que necesito además de eso es que se acceda en modo lectura al rchivo o en el mejor caso exportarlo a un excel para visualziarlo mejor.

Mucahs gracias
#3
Estimado,

Vuelvo con ustedes en esta ocasión, para lo siguiente:
Necesito extraer la infromación de un archivo db que se encarga de tener la base de datos de un programa y dicha bd se pueda reflejar en excel, todo en Powershell.
Lo que tengo hasta ahora y espero que no se rian porque es poco lo que sé :laugh:, es lo siguiente:
Get-Content -LiteralPath C:\ProgramData\PROISER\ISASPSUS\datastore\dsfile.db | Export-Csv

Agradecería si me pueden ayudar.

Saludos.
#4
Estiamdos,

El asunto es el siguiente:

Yo uso el ISAS pSUS que es un programa que se encarga del analisis de semen. Yo de ahi obtengo el archivo 1394cmdr.pdb (donde se aloja la BBDD del programa). Más allá de eso yo queiro obtener la mejor forma de poder crear un informe diario tanto con los parámetros de la bbdd o que ejecute el mismo programa y que cree todos los días a cierta hora un informe de alguna manera.
Lo que queiro agilizar con esto es que no tengo qeu ser manual el proceso, teniendo qeu cargar muchas cosas dentro del programa.

Espero que se entienda mi pedido.

Saludos