Форум программистов, компьютерный форум CyberForum.ru

Работа с базой данных SQLITE3 [Русские символы] - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
kudpro
28 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 60
23.11.2011, 17:01     Работа с базой данных SQLITE3 [Русские символы] #1
Здравствуйте.
Есть программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
 
int main()
{
    sqlite3* db;
    int rc;
    rc=sqlite3_open("test.sqlite",&db);
    if(rc)
    {
        printf("Не могу открыть базу %s",sqlite3_errmsg(db),sqlite3_close(db));
        exit(1);
    }
    sqlite3_stmt* pStmt;
    char zSql[]="SELECT Номер_группы,Специальность From Группы;";
    do
    {
        sqlite3_prepare(db,zSql,-1,&pStmt,0);
        while(SQLITE_ROW==sqlite3_step(pStmt))
        {
 
            printf("%d\t% s",sqlite3_column_int(pStmt,0),sqlite3_column_text(pStmt,1));
        }
        rc=sqlite3_finalize(pStmt);
    }
    while(rc==SQLITE_SCHEMA);
    sqlite3_close(db);
 
    return 0;
}
Никак немогу заставить ее понимать русские символы из базы данных.

Программа создана в среде Code Blocks

Исходник программы и базы данных одним архивом в вложениях.
База данных создавалась через sqlite manager - плагин для Mozilla FireFox
Вложения
Тип файла: zip BD.zip (3.12 Мб, 25 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kudpro
23.11.2011, 21:19  [ТС]
  #2
 Комментарий модератора 
2.14. Чтобы "поднять" тему в разделе и поиске по форуму, используйте осмысленные сообщения, например "Тема/проблема/задача актуальна". Если вы чего-то достигли в решении проблемы на этот момент, сообщите об этом.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
23.11.2011, 22:33     Работа с базой данных SQLITE3 [Русские символы] #3
kudpro, так работай с sqlite3 в кодировке utf-8 и в консоль вывод делай wprintf.
kudpro
28 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 60
25.11.2011, 09:24  [ТС]     Работа с базой данных SQLITE3 [Русские символы] #4
Цитата Сообщение от xAtom Посмотреть сообщение
kudpro, так работай с sqlite3 в кодировке utf-8 и в консоль вывод делай wprintf.
Не получается, немогу понять почему.
В базе UTF8 в приложении тоже.
wprintf вывел только запятые хотя.

В моем архиве базу test.sqlite брать из папки исх

Добавлено через 4 часа 4 минуты
Сможет кто написать через CharToOem?

Добавлено через 8 часов 9 минут
Хотяб подтолкните=)

Добавлено через 11 часов 41 минуту
Актуально.
KATbIK
 Аватар для KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
25.11.2011, 15:28     Работа с базой данных SQLITE3 [Русские символы] #5
Попробуй пользоваться конвертерами например iconv.

Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
//INSERT
    ...
    const char* sql2 = "insert into tbl1 values (?, ?)";
    string s = pwtIconv ("Русский текст", "CP1251", "UTF-8");  //Функцию конвертирования пишешь сам
    int num = 35;
    rc = sqlite3_prepare( db, sql2, -1, &stmt, 0);
    sqlite3_bind_text( stmt, 1, s.c_str(), -1, 0);
    sqlite3_bind_int( stmt, 2, num)
    sqlite3_step(stmt);
   ...
Все путем, работает))
Yandex
Объявления
25.11.2011, 15:28     Работа с базой данных SQLITE3 [Русские символы]
Ответ Создать тему
Опции темы

Текущее время: 12:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru