Название: вопрос по SQLITE Отправлено: pro100skif от Июнь 12, 2014, 14:02 Доброго времени суток, только начал работать с БД но не очень в них разбираюсь.Если б вы смогли ответить на кое какие вопросы был бы очень благодарен.
И так: 1.когда только разбирал примеры то заметил что если создавать БД с таким же именем и названиями таблиц то данные сохраняются даже после завершения работы программы, хотя в деструкторе использую db.close(); db.removeDatabase("QSQLITE"); Я просто не очень понимаю что происходит и где оно хранит данные для подключения использую: db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(dbName); db.open(); 2.Когда создаю поля с помощью Sql запроса query.exec("alter table "+tableName+" add "+fieldName+" "+typeName); получаю от пользователя имя поля и тип данных поля. но когда ввожу данные в ячейки , например в ячейку INT или REAL можно вносить текст.Так и должно быть и мне нужно контролировать что пользователь вводит в ячейку или я что то не так делаю? Заранее спасибо за ответ. Название: Re: вопрос по SQLITE Отправлено: Bepec от Июнь 12, 2014, 14:08 1) void QSqlDatabase::removeDatabase ( const QString & connectionName ) [static]
Removes the database connection connectionName from the list of database connections. 2) в SQLite нет типизации, насколько я помню. Что угодно суй. Контролировать должен сам :) Название: Re: вопрос по SQLITE Отправлено: Hellraiser от Июнь 12, 2014, 15:43 Вот так правильно удалять:
Код Этот момент довольно-таки подробно освещен в букваре. Кроме того, removeDatabase не удаляет физический файл SQLITE, а удаляет подключение из списка. После removeDatabase надо удалять файл принудительно. Название: Re: вопрос по SQLITE Отправлено: pro100skif от Июнь 13, 2014, 19:35 Вот так правильно удалять: тогда еще вопрос (возможно неграмотный) как этот файл получить из SQLITE что б его можно было записать открыть из программы...Код Этот момент довольно-таки подробно освещен в букваре. Кроме того, removeDatabase не удаляет физический файл SQLITE, а удаляет подключение из списка. После removeDatabase надо удалять файл принудительно. Название: Re: вопрос по SQLITE Отправлено: Johnik от Июнь 14, 2014, 01:11 тогда еще вопрос (возможно неграмотный) как этот файл получить из SQLITE что б его можно было записать открыть из программы... Как получить не знаю, но создать временную БД на диске, а потом удалить можно так: Код
Название: Re: вопрос по SQLITE Отправлено: Bepec от Июнь 14, 2014, 10:29 При открытии QSqlDatabase SQLite типа, создаётся файл БД. И что хотите с ним и делайте :D
Название: Re: вопрос по SQLITE Отправлено: pro100skif от Июнь 16, 2014, 22:02 ага спасибо
Название: Re: вопрос по SQLITE Отправлено: pro100skif от Июнь 17, 2014, 03:28 При открытии QSqlDatabase SQLite типа, создаётся файл БД. И что хотите с ним и делайте :D а где этот файл находится?в папке с проектом ее нету.Название: Re: вопрос по SQLITE Отправлено: gil9red от Июнь 17, 2014, 06:44 При открытии QSqlDatabase SQLite типа, создаётся файл БД. И что хотите с ним и делайте :D а где этот файл находится?в папке с проектом ее нету.Ищите в папке с ехе ;) Название: Re: вопрос по SQLITE Отправлено: mitrich от Июнь 17, 2014, 12:38 а где этот файл находится?в папке с проектом ее нету. db.setDatabaseName("Путь/к/файлу");Название: Re: вопрос по SQLITE Отправлено: pro100skif от Июнь 17, 2014, 14:53 При открытии QSqlDatabase SQLite типа, создаётся файл БД. И что хотите с ним и делайте :D а где этот файл находится?в папке с проектом ее нету.Ищите в папке с ехе ;) Название: Re: вопрос по SQLITE Отправлено: pro100skif от Июнь 18, 2014, 02:56 короче решил проблему так, установил mysql и начал использовать его.всем спасибо за помощь
Название: Re: вопрос по SQLITE Отправлено: Bepec от Июнь 18, 2014, 03:29 Как говорится "А оно мне надо?".
ну и с богом :) |