43 / 40 / 2
Регистрация: 21.09.2009
Сообщений: 145

sqlite Проблемма

21.10.2011, 17:51. Показов 1368. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравсвуйте! допустим есть бд sqlite в ней скажем есть два поля например
Логин
root
root1
root2
-------------------------
так вот мне требуется определить если я хочу добавить нового пользователя в бд под названием root1
есть ли он в бд или нету?
я написал небольшой код, но я думаю что это больше похоже на быдлокодерство, вообщем как проверить есть ли пользователь в бд или его нету... то что я написал работает но хотелось бы упросить реализацию
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
32
33
34
35
36
37
class DB
{  
     sqlite3 *db;
     public:
     static bool isHere;
     bool openDB(char *str);
     static int callback(void *notused, int coln, char **rows, char **colnm);
     bool exe(char *str);
     
};
bool DB::isHere;
 
bool DB::exe(char *UserName)
{
   
   isHere=false;
   char * sql =  new char[100];
   strcpy(sql,"Select *From Register_Users WHERE Login='");
   strcat(sql,UserName);
   strcat(sql,"';");
   sqlite3_exec(db, sql, [B]callback[/B], NULL, NULL);//Выполение запроса sql
   delete[] sql;
   return isHere;
}
если пользователь есть значение isHere=true;
в противном случае false;
[B]int DB::callback(void *notused, int coln, char **rows, char **colnm)[/B]
{
    isHere=true;
    return 0;
}
 
bool DB::openDB(char *str)
{
   sqlite3_open(str, &db);
   return true;
}
ну и использование
C++
1
2
3
4
  DB myDB;
  myDB.openDB("users.db");
  cout<<myDB.exe("hello")<<endl; //этот пользователь есть в бд вернет 1
  cout<<myDB.exe("hello12")<<endl;//этот пользователь в бд нет вернет 0
мне нужно как-то проверить результат sql запроса не использую функцию обратного callback(void *notused, int coln, char **rows, char **colnm) вызова кто что может подсказать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2011, 17:51
Ответы с готовыми решениями:

Как написать формулы в sqlite или отказаться от использования sqlite вовсе
Доброго времени суток. Друзья, пишу справочник по физике, недавно столкнулся с проблемой - как написать формулы в sqlite? пользуюсь DB...

Файл cookies.sqlite не sqlite на самом деле, или как его открыть
хочу прочитать куки браузеров (это не противозаконно) оперу сделал, хром сделал, у хрома как раз sqlite как и у мозилы делаю...

Sqlite в c++ под linux, как правильно подключить sqlite?
Добрый день. Подскажите пожалуйста, как подключить sqlite к c++? Пишу приложение без сред разработки. в миднайте. есть .cpp файл, .h...

1
Taracan
10.02.2012, 22:36
Используй условие с оператором select (формируешь запрос на выборку по полю логин на поиск ника, если кол-во записей 0 - нету такого, можно добавлять, если 1 - уже есть). имхо, вроде бы так))
if (SELECT COUNT(Login) FROM table_name WHERE (Login = ‘Иванов’) ==0 )
{
// нету таких, можно добавлять
}
else
{
// а такой уже есть или ошибочка вышла))
}
где Login - поле с логином, table_name - название таблицы с логином, Иванов - что ищем (Root1 например).
Ну примерно так - с синтаксисом покрути , () добавь если что...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2012, 22:36
Помогаю со студенческими работами здесь

SQLite for Excel или как выгрузить данные в SQLite
Здравствуйте! Мне необходимо написать макрос для выгрузки данных из excel в sqlite. Нашла проект SQLite for Excel, но при запуске...

Редактирование связанных объектов через EF в SQLite, C#, EF 6.2, SQLite, C# Winforms
Здравствуйте. Суть: используя вышеперечисленные технологии, при чтении из базы данных связанных объектов после добавления, функция...

SQLite не найден SQLite.Interop,dll
работаю на виртуальной машине windows 7 x86. Установлен Visual Studio 2013. Через NuGet установил для своего проекта...

Не работает агент после переноса сервера
На днях перетащили сервер на новое железо. Конфигурация сервера (Domino) осталась неизменной, все сетевые протоколы остались тоже без...

Проблемма с персонажем
Проблема заключается в &quot;телепортации&quot; персонажа при прыжке и падении, в чем она заключается и как ее решить? Прыжок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru