Hello Georg

This is a great news. since we need more binding. 
I do not really know the answer but I���m sure the guys will help you. 
Now just a question: what is the definition of MYSQL
that you mentioned in 
���MYSQL * mysql_init(NULL)���


S.

On 21 Jun 2020, at 11:27, Georg Hagn <georg.hagn@gmail.com> wrote:

For an exercise with uFFi i am try an C-Connector for MariaDB like
Garage or UBDC
As in "Unified FFI Februar 12 2020" I made Helper-classes:

FFILibrary subclass: #MariaDBLibC

FFIOpaqueObject subclass: #MariaDBHandle
MariaDBHandle >> unixModuleName [
  ^ '/usr/lib/x86_64-linux-gnu/libmariadb.so'
]

and a class

Object subclass: #MariaDBDriver
  instanceVariableNames: 'connectionHandle'

"Accessors"
MariaDBDriver >> connectionHandle [  ^ connectionHandle ]
MariaDBDriver >> connectionHandle: aHandle [  connectionHandle := aHandle ]
MariaDBDriver class >> ffiLibrary [   ^ MariaDBLibC ]

"API Methods"
MariaDBDriver >> clientInfo [  ^ self class clientInfo ]

MariaDBDriver class >> clientInfo [
  ^ self ffiCall: #(String mysql_get_client_info(void))
]

For a first simple Test I choosed the c-api-funtion:
���const char * mysql_get_client_info(void )���

In Playground I executed:
driver := MariaDBDriver fromConnectionString:
'mariaDB://localhost:5432/sodbxtest?&user=sodbxtest&password=sodbxtest'.

driver clientInfo inspect.
And I get the expected result: String ���10.2.9���

But the second test with c-api-funtcion fails
���MYSQL * mysql_init(NULL)���

MariaDBDriver >> init [
  | aNullHandle |
  aNullHandle := ExternalAddress null.
  self connectionHandle: (self class init: aNullHandle).
]

MariaDBDriver class >> init: aNullHandle [
  ^ self ffiCall: #(MariaDBHandle * mysql_init(ExternalAddress aNullHandle)).
]

In Playground I again executed:
driver := MariaDBDriver fromConnectionString:
'mariaDB://localhost:5432/sodbxtest?&user=sodbxtest&password=sodbxtest'.

driver init inspect.
" A call to an external function failed"

Any ideas what is wrong??

Thanks
Georg


--------------------------------------------
St��phane Ducasse
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, B��t.A, Park Plaza
Villeneuve d'Ascq 59650
France