Skip to content

Commit c00652f

Browse files
committed
C bindings include sync into example
Signed-off-by: Piotr Jastrzebski <[email protected]>
1 parent fa9d76f commit c00652f

File tree

1 file changed

+40
-15
lines changed

1 file changed

+40
-15
lines changed

bindings/c/example.c

+40-15
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ int main(int argc, char *argv[])
1313
const char *err = NULL;
1414
int retval = 0;
1515
char db_path[1024];
16+
char sync = 0;
1617

1718
if (argc > 1) {
1819
char* url = argv[1];
@@ -34,6 +35,7 @@ int main(int argc, char *argv[])
3435
fprintf(stderr, "%s\n", err);
3536
goto quit;
3637
}
38+
sync = 1;
3739
} else {
3840
retval = libsql_open_ext(":memory:", &db, &err);
3941
if (retval != 0) {
@@ -48,30 +50,43 @@ int main(int argc, char *argv[])
4850
goto quit;
4951
}
5052

51-
retval = libsql_query(conn, "SELECT 1", &rows, &err);
53+
retval = libsql_execute(conn, "CREATE TABLE IF NOT EXISTS guest_book_entries (text TEXT)", &err);
54+
if (retval != 0) {
55+
fprintf(stderr, "%s\n", err);
56+
goto quit;
57+
}
58+
59+
retval = libsql_execute(conn, "INSERT INTO guest_book_entries VALUES('hi there')", &err);
60+
if (retval != 0) {
61+
fprintf(stderr, "%s\n", err);
62+
goto quit;
63+
}
64+
65+
retval = libsql_execute(conn, "INSERT INTO guest_book_entries VALUES('some more hi there')", &err);
66+
if (retval != 0) {
67+
fprintf(stderr, "%s\n", err);
68+
goto quit;
69+
}
70+
71+
retval = libsql_query(conn, "SELECT text FROM guest_book_entries", &rows, &err);
5272
if (retval != 0) {
5373
fprintf(stderr, "%s\n", err);
5474
goto quit;
5575
}
5676

57-
int num_cols = libsql_column_count(rows);
58-
5977
while ((retval = libsql_next_row(rows, &row, &err)) == 0) {
6078
if (!err && !row) {
6179
break;
6280
}
63-
for (int col = 0; col < num_cols; col++) {
64-
if (col > 0) {
65-
printf(", ");
66-
}
67-
long long value;
68-
retval = libsql_get_int(row, col, &value, &err);
69-
if (retval != 0) {
70-
fprintf(stderr, "%s\n", err);
71-
} else {
72-
printf("%lld\n", value);
73-
}
74-
}
81+
const char * value = NULL;
82+
retval = libsql_get_string(row, 0, &value, &err);
83+
if (retval != 0) {
84+
fprintf(stderr, "%s\n", err);
85+
} else {
86+
printf("%s\n", value);
87+
libsql_free_string(value);
88+
value = NULL;
89+
}
7590
err = NULL;
7691
}
7792

@@ -80,6 +95,16 @@ int main(int argc, char *argv[])
8095
goto quit;
8196
}
8297

98+
if (sync) {
99+
printf("Syncing database to remote...\n");
100+
retval = libsql_sync(db, &err);
101+
if (retval != 0) {
102+
fprintf(stderr, "%s\n", err);
103+
goto quit;
104+
}
105+
printf("Done!\n");
106+
}
107+
83108
quit:
84109
libsql_free_rows(rows);
85110
libsql_disconnect(conn);

0 commit comments

Comments
 (0)