const char* // question sur les tableaux
Bonjour,
J'ai trouvé un exemple sqlite en c sur internet.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| // ..
// .. after open database
// ..
const char *pSQL[6];
// Create a new myTable in database
pSQL[0] = "create table myTable (FirstName varchar(30), LastName varchar(30), Age smallint)";
// Insert first data item into myTable
pSQL[1] = "insert into myTable (FirstName, LastName, Age) values ('Woody', 'Alan', 45)";
// Insert second data item into myTable
pSQL[2] = "insert into myTable (FirstName, LastName, Age) values ('Micheal', 'Bay', 38)";
// Select all data in myTable
pSQL[3] = "select * from myTable";
// Remove all data in myTable
pSQL[4] = "delete from myTable";
// Drop the table from database
pSQL[5] = "drop table myTable";
// execute all the sql statements
for(int i = 0; i < 6; i++)
{
rc = sqlite3_exec(db, pSQL[i], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
break; // break the loop if error occur
}
}
// ..
// .. before close database
// .. |
Bon exemple puisqu'il fonctionne ;-)
Par contre, j'ai compris que les tableau était défini avec une longeur de caractère + 1. Le "1" étant le caractère de fin de chaine \0.
Alors pourquoi ceci ne renvoi pas d'erreur ?
Citation:
pSQL[0] = "create table myTable (FirstName varchar(30), LastName varchar(30), Age smallint)";
Est-ce comme un tableau à deux dimensions ? pchar[0][]