Om du behöver komma åt en databas från Raspberry Pi kan du antingen använda en som är tillgänglig för den här plattformen (till exempel MySQL / MariaDB, PostgreSQL och MongoDB) eller få åtkomst till en på distans. Easysoft ODBC-drivrutiner gör att dina Pi-applikationer kan ansluta till både lokala och fjärrdatabaser. Du kan till exempel använda SQL Server ODBC-drivrutinen för att ansluta Python på Pi till SQL Server på Windows (eller i Azure Cloud, eller på Linux, om du använder dessa plattformar). Stegen för detta är följande:
- Ladda ner SQL Server ODBC-drivrutinen för Raspberry Pi. (Registrering krävs.)
- Installera och licensiera SQL Server ODBC-drivrutinen på Raspberry Pi-maskinen.
För installationsinstruktioner, se dokumentationen för ODBC-drivrutinen.
Obs Du behöver unixODBC Driver Manager installerad på din maskin. Easysoft-distributionen inkluderar en version av unixODBC Driver Manager som Easysoft SQL Server ODBC-drivrutinen har testats med. Easysofts installationsprogram för drivrutiner ger dig möjlighet att installera unixODBC.
- Skapa en ODBC-datakälla i /etc/odbc.ini som ansluter till SQL Server-databasen du vill komma åt från Python. Till exempel:
[SQLSERVER_SAMPLE] Driver = Easysoft ODBC-SQL Server Server = my_machine\SQLEXPRESS User = my_domain\my_user Password = my_password # If the database you want to connect to is the default # for the SQL Server login, omit this attribute Database = Northwind
- Använd isql för att testa den nya datakällan. Till exempel:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v SQLSERVER_SAMPLE
Vid prompten skriver du "hjälp" för att visa en lista med tabeller. För att avsluta, tryck på retur i en tom uppmaningsrad.
Om du inte kan ansluta, se den här artikeln och SQL Server ODBC Driver Knowledge Base för hjälp.
- Installera nu pyodbc, ODBC-gränssnittet som gör att du kan komma åt en ODBC-databas från Python:
sudo apt-get install python-pyodbc
- För att testa installationen, hämta lite SQL Server-data från ett Python-skal:
pi@raspberrypi:~ $ python Python 2.7.13 (default, Jan 19 2017, 14:48:08) [GCC 6.3.0 20170124] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pyodbc >>> cnxn = pyodbc.connect("DSN=SQLSERVER_SAMPLE") >>> cursor = cnxn.cursor() >>> cursor.tables() <pyodbc.Cursor object at 0x76a168a8> >>> rows = cursor.fetchall() >>> for row in rows: ... print row.table_name ... sysmatrixageforget GEMS_DEPENDENTS_STAGING2 GEMS_DEPENDENTS_STAGING2 MSreplication_options oinsert spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor >>>
Alternativt, om du föredrar Perl:
pi@raspberrypi:~ $ sudo apt-get install libdbi-perl pi@raspberrypi:~ $ wget http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.56.tar.gz pi@raspberrypi:~ $ tar -xvf DBD-ODBC-1.56.tar.gz pi@raspberrypi:~ $ cd DBD-ODBC-1.56 pi@raspberrypi:~ $ export DBI_DSN='dbi:ODBC:SQLSERVER_SAMPLE' pi@raspberrypi:~ $ DBI_USER='mydb_user' pi@raspberrypi:~ $ DBI_PASS='mydb_password' pi@raspberrypi:~ $ perl Makefile.PL pi@raspberrypi:~ $ make pi@raspberrypi:~ $ make test pi@raspberrypi:~ $ sudo make install pi@raspberrypi:~ $ vi perl-test.pl #!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect( "dbi:ODBC:SQLSERVER_SAMPLE", "mydb_user", "mydb_password" , { RaiseError => 1 } ); my $sth = $dbh->table_info(); while ( my ( $qualifier, $owner, $name, $type, $remarks ) = $sth->fetchrow_array() ) { foreach ($qualifier, $owner, $name, $type, $remarks) { $_ = '' unless defined $_; } print "$qualifier, $owner, $name, $type, $remarks \n"; } exit; pi@raspberrypi:~ $ perl ./perl-test.pl master, dbo, sysmatrixageforget, SYSTEM TABLE, master, dbo, GEMS_DEPENDENTS_STAGING2, TABLE, master, dbo, DBD_ODBC_LOB_TEST, TABLE,
Easysoft stöder för närvarande ARMv71 Raspberry Pi-plattformen, som är 32-bitars. Om du behöver en av våra ODBC-drivrutiner för en 64-bitars Raspberry PI (i skrivande stund betyder detta en Raspberry Pi 3 Model B som kör SUSE Linux), låt oss veta genom att kontakta vårt supportteam, så kommer vi att försöka bygga en 64-bitars drivrutin för dig. En exempelfördel med att köra våra drivrutiner på en 64-bitars Raspberry Pi-plattform är den prestandaökning som denna arkitektur ger när du använder kryptering. (64-bitars heltal gör att CPU:er kan hantera krypteringsuppgifter med färre kommandon.) SQL Server ODBC-drivrutinen gör att du kan kryptera nätverksanslutningen mellan din Raspberry Pi och SQL Server, vilket skyddar data under överföring.
För närvarande ger Easysoft-drivrutiner dig tillgång till följande datalager från Raspberry Pi:
- SQL-server
- Oracle
- Salesforce
- Åtkomst
- DB2
- MySQL
- Apache Derby
- Alla ODBC-drivrutiner