home bbs files messages ]

Just a sample of the Echomail archive

Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.

   SYNC_PROGRAMMING      Synchronet/Baja/XSDK Programming      49,116 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 46,917 of 49,116   
   Fernando Toledo to GitLab note in main/sbbs   
   Inital commit of sqlite support.   
   08 May 25 19:53:28   
   
   TZUTC: -0700   
   MSGID: 52301.syncprog@1:103/705 2c837075   
   PID: Synchronet 3.21a-Linux master/85dea2614 Apr 11 2025 GCC 12.2.0   
   TID: SBBSecho 3.25-Linux master/0c503c4ea May 04 2025 GCC 12.2.0   
   BBSID: VERT   
   CHRS: ASCII 1   
   FORMAT: flowed   
   https://gitlab.synchro.net/main/sbbs/-/merge_requests/538#note_7220   
      
   see this example (from chatgpt sorry)   
   for INSERT/CREATE TABLE it-s use exec method   
   and for SELECT use prepare   
      
   Other libraries I remember, such as using MySQL for PHP, had db.exec() for   
   queries that didn't return results, and db.query() for those that did return   
   rows and iterate through them.   
      
      
   ```c++   
   #include    
   #include    
      
   int main() {   
       sqlite3 *db;   
       char *errMsg = 0;   
       int rc;   
      
       // Abrir (o crear) la base de datos   
       rc = sqlite3_open("ejemplo.db", &db);   
       if (rc) {   
           fprintf(stderr, "No se puede abrir la base de datos: %s\n",   
   sqlite3_errmsg(db));   
           return 1;   
       } else {   
           printf("Base de datos abierta exitosamente\n");   
       }   
      
       // Crear tabla   
       const char *sqlCreateTable = "CREATE TABLE IF NOT EXISTS personas (id   
   INTEGER PRIMARY KEY, nombre TEXT);";   
       rc = sqlite3_exec(db, sqlCreateTable, 0, 0, &errMsg);   
       if (rc != SQLITE_OK) {   
           fprintf(stderr, "Error al crear tabla: %s\n", errMsg);   
           sqlite3_free(errMsg);   
       }   
      
       // Insertar datos   
       const char *sqlInsert = "INSERT INTO personas (nombre) VALUES ('Juan'),   
   ('Ana');";   
       rc = sqlite3_exec(db, sqlInsert, 0, 0, &errMsg);   
       if (rc != SQLITE_OK) {   
           fprintf(stderr, "Error al insertar datos: %s\n", errMsg);   
           sqlite3_free(errMsg);   
       }   
      
       // Consultar datos   
       const char *sqlSelect = "SELECT id, nombre FROM personas;";   
       sqlite3_stmt *stmt;   
      
       rc = sqlite3_prepare_v2(db, sqlSelect, -1, &stmt, 0);   
       if (rc == SQLITE_OK) {   
           while (sqlite3_step(stmt) == SQLITE_ROW) {   
               int id = sqlite3_column_int(stmt, 0);   
               const unsigned char *nombre = sqlite3_column_text(stmt, 1);   
               printf("ID: %d, Nombre: %s\n", id, nombre);   
           }   
       } else {   
           fprintf(stderr, "Error al preparar la consulta: %s\n", s   
   lite3_errmsg(db));   
       }   
      
       sqlite3_finalize(stmt);   
       sqlite3_close(db);   
       return 0;   
   }   
   ```   
   --- SBBSecho 3.25-Linux   
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)   
   SEEN-BY: 103/705 105/81 106/201 124/5016 128/187 153/757 7715 154/10   
   SEEN-BY: 154/30 110 203/0 218/700 221/0 226/30 227/114 229/110 114   
   SEEN-BY: 229/206 317 400 426 428 470 550 700 705 240/1120 5832 263/1   
   SEEN-BY: 266/512 280/464 5003 5006 291/111 292/8125 301/1 320/219   
   SEEN-BY: 322/757 341/66 234 342/200 396/45 423/120 460/58 256 1124   
   SEEN-BY: 467/888 633/280 712/848 770/1 902/26 5020/400 8912 5054/30   
   SEEN-BY: 5075/35   
   PATH: 103/705 280/464 460/58 229/426   
      

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca