Не удается прочитать базу данных SQLite, созданную на другом языке - PullRequest
1 голос
/ 08 февраля 2011

У меня есть база данных SQLite3, которую я создал в python.И по умолчанию это пишет базу данных в Unicode.

Теперь я пытаюсь запросить базу данных в Java-апплете с использованием SQLite JDBC.И я не могу найти таблицы, строки и т. Д., Потому что я думаю, что запросы Java и / или JDBC в ANSI.

Кто-нибудь знает, как я могу запросить свою базу данных SQLite3 с помощью запроса Unicode в Java?Что-то вроде следующего не работает (в Java пытается выполнить запрос Unicode SQL):

Если я получаю доступ к базе данных в python, я могу распечатать таблицы без проблем и сделать обновления, НО, если я попытаюсь сделатьто же самое в Java, я не получаю результатов, возвращаемых из моего запроса.Это проблема кодирования или что-то еще

Это работает импорт sqlite3

def blah(): 
    conn = sqlite3.connect( "a.db" )
    cur = conn.cursor()
    res = cur.execute( "SELECT name FROM sqlite_master WHERE type='table'" ).fetchal()
    print res  

blah ()

Это не возвращает таблиц, когда он должен вернуть те же таблицы, что и выше

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:a.db");
Statement stat  = conn.createStatement(); 
conn.setAutoCommit(false);
ResultSet tables = stat.executeQuery("SELECT name FROM sqlite_master WHERE type='table'");
String b = "";  

while (tables.next())  {   b+= "table= " + tables.getString("name");       } 

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Джим, это очень странно, это должно работать.Вы пытались открыть БД с консоли?Вы можете открыть его, запустив sqlite3 a.db

, что меня заинтриговало: вы пытаетесь открыть БД из Java-апплета.Вы дали ему необходимые разрешения и подписали его, чтобы яблоко действительно могло записывать на диск?

0 голосов
/ 18 июня 2014

Вы устали открывать sqlite3 a.db и печатать PRAGMA encoding;? Стоит сказать UTF8 по умолчанию.

Я могу создать базу данных sqlite UTF8 в командной строке и прочитать содержимое этого файла, используя sqlite jdbc.

Вы уверены, что подключаетесь к базе данных, которую вы создали с помощью python? Если база данных не существует, то sqlite создаст базу данных, и в ней не будет таблиц. Это то, что, вероятно, происходит с вами.

Вы используете Java и Python в одном каталоге?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...