Я пытаюсь использовать GNOME JavsScript tutorial, что кажется not to work in its original version.Ожидаемый тип utf8 для аргумента 'sql', но получил тип 'object'
var gdaStrConn = Gda.Connection.open_from_string("SQLite", "DB_DIR=" + GLib.get_home_dir() + ";DB_NAME=gnome_demo", null, 0);
print('Connected');
gdaStrConn.execute_non_select_command (this.connection, 'create table demo (id integer, name varchar(100))');
документация для функции execute_non_select_command
, говорит:
gint gda_connection_execute_non_select_command
(GdaConnection *cnc,
const gchar *sql,
GError **error);
This is a convenience function to execute a SQL command over the opened connection. For the returned value, see gda_connection_statement_execute_non_select()'s documentation.
cnc : an opened connection
sql : a query statement that must not begin with "SELECT"
error : a place to store errors, or NULL
Returns : the number of rows affected or -1, or -2
Теперь я получаю следующее сообщение об ошибке .:
(gjs:25295): Gjs-WARNING **: JS ERROR: Error: Expected type utf8 for Argument 'sql' but got type 'object'
Почему я получаю эту ошибку, причину sql
паров являются строка: 'create table demo (id integer, name varchar(100))'
?
Что не так с этим звонком?
Причина этого в том, что документация предназначена для версии библиотеки C. Первый аргумент, указатель на 'GdaConnection', представлен в javascript с объектом, на который вызывается метод (например,' gdaStrConnection.execute_non_select_command (...) 'примерно эквивалентен C' gda_connection_execute_non_select_command (gdaStrConnection, .. .) ') –