Подключение к базе данных с использованием C / C ++
SQL (язык структурированных запросов) - это язык четвертого поколения (4GL), который используется для определения, управления и контроля СУБД (системы управления реляционными базами данных).
Прежде чем приступить к основной статье, давайте познакомимся с используемыми инструментами.
Компилятор: Code :: Blocks IDE с компилятором MinGW
Ссылка для скачивания: Двоичная загрузка
Code :: Blocks - это кросс-компилятор (он может работать на любой платформе, такой как Windows, Linux и Mac), и его можно загрузить бесплатно. Эта IDE специально разработана для языков C и C ++ и проста в использовании.API: мы собираемся использовать библиотеку SQLAPI ++.
Ссылка для скачивания: Скачать SQLAPI
SQLAPI ++ - это библиотека C ++ (в основном набор файлов заголовков) для доступа к нескольким базам данных SQL (Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL, SQLite, SQL Anywhere и ODBC). Это легко реализовать и просто.
OCCI: интерфейс вызова Oracle C ++
Ссылка для скачивания: Скачать OCCI C ++
OCCI - это интерфейс, разработанный компанией ORACLE, занимающейся базами данных, который определяет удобный интерфейс для программиста на C ++ для доступа к базе данных Oracle с классами с использованием параметров, напоминающих операторы SQL. Интерфейс существует для ORACLE 9i, ORACLE 10 и поставляется с Oracle.
Мы должны загрузить и установить три указанных выше (если у нас их нет). Теперь мы почти готовы к старту.
Некоторые настройки перед запуском:
-> Откройте код :: блоки IDE и перейдите или щелкните по настройкам -> настройки компилятора и отладчика (теперь вы увидите глобальные настройки компилятора)
-> Теперь нажмите « Настройки компоновщика » в настройках компоновщика, нажмите кнопку ДОБАВИТЬ и добавьте следующее
Для ОС Windows :
Код:
C: SQLAPI lib libsqlapiddll.a
C: Program Files CodeBlocks MinGW lib libuser32.a
C: Program Files CodeBlocks MinGW lib libversion.a
C: Program Files CodeBlocks MinGW lib liboleaut32.a
C: Program Files CodeBlocks MinGW lib libole32.a
Они будут найдены в вашем SQLAPI ++ (если вы не распаковали на диск C :, выберите соответствующее место и добавьте упомянутые файлы в настройки компоновщика).
Приведенный выше код используется для добавления файлов библиотеки для соединения программы C / C ++ с SQLAPI.
В основном это 2 шага:
- Подключение к базе данных (и обработка ошибок)
Код:// C++ pgroram for connecting to database (and error handling)#include<stdio.h>#include<SQLAPI.h> // main SQLAPI++ headerintmain(intargc,char* argv[]){// create connection object to connect to databaseSAConnection con;try{// connect to database// in this example, it is Oracle,// but can also be Sybase, Informix, DB2// SQLServer, InterBase, SQLBase and ODBCcon.Connect ("test",// database name"tester",// user name"tester",// passwordSA_Oracle_Client);//Oracle Clientprintf("We are connected! ");// Disconnect is optional// autodisconnect will occur in destructor if neededcon.Disconnect();printf("We are disconnected! ");}catch(SAException & x){// SAConnection::Rollback()// can also throw an exception// (if a network error for example),// we will be readytry{// on error rollback changescon.Rollback ();}catch(SAException &){}// print error messageprintf("%s ", (constchar*)x.ErrText());}return0;}Выход:
Мы связаны! Мы отключены!
- Выполнение простой команды SQL
Теперь мы постараемся выполнить простой SQL-запрос. Во-первых, создадим таблицу для базы данных:создать таблицу tb1 (номер идентификатора, имя varchar (20);
Теперь установите соединение с базой данных, затем, после вашего con.connect; вы должны использовать метод cmd.setCommandText для передачи запроса в базу данных, как показано ниже:
con.Connect («тест», «тестер», «тестер», SA_Oracle_Client); cmd.setCommandText ("создать таблицу tb1 (номер идентификатора, имя varchar (20));");и теперь, чтобы выполнить запрос, мы должны использовать следующую команду:
cmd.Execute ();
Полный код:
#include<stdio.h>#include <SQLAPI.h> // main SQLAPI++ headerintmain(intargc,char* argv[]){SAConnection con;// connection object to connect to databaseSACommandcmd;// create command objecttry{// connect to database (Oracle in our example)con.Connect("test","tester","tester", SA_Oracle_Client);// associate a command with connection// connection can also be specified in SACommand constructorcmd.setConnection(&con);// create tablecmd.setCommandText("create table tbl(id number, name varchar(20));");cmd.Execute();// insert valuecmd.setCommandText("Insert into tbl(id, name) values (1,”Vinay”)");cmd.setCommandText("Insert into tbl(id, name) values (2,”Kushal”)");cmd.setCommandText("Insert into tbl(id, name) values (3,”Saransh”)");cmd.Execute();// commit changes on successcon.Commit();printf("Table created, row inserted! ");}catch(SAException &x){// SAConnection::Rollback()// can also throw an exception// (if a network error for example),// we will be readytry{// on error rollback changescon.Rollback();}catch(SAException &){}// print error messageprintf("%s ", (constchar*)x.ErrText());}return0;}
Как мы знаем, Oracle не фиксируется автоматически (фиксация - это постоянное отражение данных в базе данных), поэтому мы должны зафиксировать это.
con.Commit ();
и аналогичным образом мы можем откатить транзакции при возникновении исключения, поэтому для этого мы используем:
con.Rollback ();
Для удаления строки используем эту команду.
cmd.setCommandText ("удалить из tb1, где id = 2");Таким образом, к концу этой статьи мы узнали, как подключить вашу программу C / C ++ к базе данных и выполнять манипуляции.
Эта статья предоставлена Vinay Garg . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.