Native API

The native SQL Relay client API currently supports C, C++, .NET languages, Java, Perl, Python, PHP, Ruby, TCL and Erlang.

The native API is intuitive, consistent across languages, and supports powerful features not available when using a database abstraction layer like suspended sessions, result set caching and tuning options.

Programming guides with sample code and API references are available for each supported language:

Guides: C++, C, C#, Perl, PHP, Python, Ruby, Java, TCL, Erlang
References: C++, C, C#, Perl, PHP, Python, Ruby, Java, TCL
C++

#include <sqlrelay/sqlrclient.h>
#include <rudiments/stdio.h>

using namespace rudiments;

int main() {

        sqlrconnection  sqlrcon("examplehost",9000,
                                "/tmp/example.socket",
                                "exampleuser",
                                "examplepassword",0,1);
        sqlrcursor      sqlrcur(&sqlrcon);

        sqlrcur.sendQuery("select * from exampletable");
        for (uint64_t row=0; row<sqlrcur.rowCount(); row++) {
                for (uint64_t col=0; col<sqlrcur.colCount(); col++) {
                        stdoutput.printf("%s,",sqlrcur.getField(row,col));
                }
                stdoutput.printf("\n");
        }
}

C

#include <sqlrelay/sqlrclientwrapper.h>
#include <stdio.h>

int main() {

        sqlrcon sqlrconref=sqlrcon_alloc("examplehost",9000,
                                                "/tmp/example.socket",
                                                "exampleuser",
                                                "examplepassword",0,1);
        sqlrcur sqlrcurref=sqlrcur_alloc(sqlrconref);

        sqlrcur_sendQuery(sqlrcurref,"select * from exampletable");
        uint64_t        row;
        uint64_t        col;
        for (row=0; row<sqlrcur_rowCount(sqlrcurref); row++) {
                for (col=0; col<sqlrcur_colCount(sqlrcurref); col++) {
                        printf("%s,",sqlrcur_getFieldByIndex(sqlrcurref,row,col));
                }
                printf("\n");
        }

        sqlrcur_free(sqlrcurref);
        sqlrcon_free(sqlrconref);
}