12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
1

С++ + Аксесс

01.02.2011, 10:41. Показов 4053. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
я хочу соединить мою программу на С++ с бд аксесс
если я знаю синтаксис запросов аксесса(через драйвер ODBC) мне этого синтаксиса запросов достаточно?
и какие библиатеки SQL допалнительно надо загружать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2011, 10:41
Ответы с готовыми решениями:

Аксесс
Можете скинуть БД самую простую с данными Главное чтобы было 4-5 таблицы.Формы запросы не нужны а...

Аксесс
там задание, нужно сделать так же, как указано там, спасибо большое ...

Аксесс
Мне нужно создать так чтоб при нажатии в таблице на фамилию открывалась подставная с подробными...

Аксесс
1. Запрос с объединением полей Фамилии и Имени в поле ФИ 2. Запрос с переименованием поля и...

11
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.02.2011, 10:43 2
Цитата Сообщение от aristov-96 Посмотреть сообщение
если я знаю синтаксис запросов аксесса(через драйвер ODBC) мне этого синтаксиса запросов достаточно?
достаточно.
Цитата Сообщение от aristov-96 Посмотреть сообщение
и какие библиатеки SQL допалнительно надо загружать?
никакие.
запрос SQL выполняет сервер - источник данных.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
01.02.2011, 11:10  [ТС] 3
можете пожалуйста направить на какую нибудь хорошею справку или книгу где про SQL можно почитать?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.02.2011, 11:15 4
Структуризированный язык запросов (SQL)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
01.02.2011, 11:17  [ТС] 5
вот я создал пустое win32 aplication с именем test1 и класс test2
хочу подключится к бд аксесс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// tes2.cpp: implementation of the tes2 class.
//
//////////////////////////////////////////////////////////////////////
 
#include "tes2.h"
 
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
 
tes2::tes2()
{
odbc_connect("db_name","db_profile","db_password")
}
 
tes2::~tes2()
{
 
}
2 ошибки
test1.exe - 2 error(s), 0 warning(s) в чём ошибки?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.02.2011, 11:36 6
Цитата Сообщение от aristov-96 Посмотреть сообщение
2 ошибки
test1.exe - 2 error(s), 0 warning(s) в чём ошибки?
так ошибки только у вас видны
там есть строки с текстом ошибок.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
01.02.2011, 11:42  [ТС] 7
о я думал тут такого нет что б ошибки писал)
ну ладно я исправил одну с ;
а другая
'odbc_connect' : undeclared identifier
как то он не знает такого как правильнее написать?)
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.02.2011, 12:03 8
Цитата Сообщение от aristov-96 Посмотреть сообщение
'odbc_connect' : undeclared identifier
как то он не знает такого как правильнее написать?)
я думаю - он знает, как правильно писать.
где ты взял такую команду подключения? не из PHP?
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
01.02.2011, 12:06  [ТС] 9
из PHP)
я только такой синтаксис знаю
odbc_connect
odbc_exec
odbc_num_rows
odbc_fetch_array
и так далее..
Это не подойдёт?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.02.2011, 12:19 10
Цитата Сообщение от aristov-96 Посмотреть сообщение
Это не подойдёт?
нет, конечно.
ты-же на С++ пишешь.
если американцу сказать по-китайски - он тоже не поймет; вот и компилятор С++ тебя не понимает.

ты, вроде, с MFC пишешь.
почитай что-то вроде этого: Библиотека MFC и базы данных
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 5
19.04.2011, 17:26 11
Наивно! Было бы так легко, стал бы полиглотом!
0
7 / 7 / 3
Регистрация: 15.01.2010
Сообщений: 86
08.05.2011, 17:08 12
Во 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
32
33
34
#pragma once
 
 
class CLabSet : public CRecordset
{
public:
    CLabSet(CDatabase* pDatabase = NULL);
    DECLARE_DYNAMIC(CLabSet)
//переменние
    CString m_AvtoAvtoID;
    CString m_AvtoAvtoName;
    long    m_AvtoPriceR;
    long    m_AvtoPriceO;
    CString m_FirmaFirmaID;
    CString m_FirmaFirmaName;
    CString m_FirmaPhone;
    CString m_ZakazAvtoZakazID;
    CString m_ZakazAvtoDate;
    BOOL    m_ZakazAvtoCash;
    long    m_ZayavkaNum;
 
    public:
    virtual CString GetDefaultConnect();    // Строка подключения по умолчанию
 
    virtual CString GetDefaultSQL();    // код SQL по умолчанию для  набора записей
    virtual void DoFieldExchange(CFieldExchange* pFX);  // поддержка RFX
 
// Реализация
#ifdef _DEBUG
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
#endif
 
};
Вот собственно реализация:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include "Lab.h"
#include "LabSet.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
IMPLEMENT_DYNAMIC(CLabSet, CRecordset)
 
CLabSet::CLabSet(CDatabase* pdb)
    : CRecordset(pdb)
{
    m_AvtoAvtoID = L"";
    m_AvtoAvtoName = L"";
    m_AvtoPriceR = 0;
    m_AvtoPriceO = 0;
    m_FirmaFirmaID = L"";
    m_FirmaFirmaName = L"";
    m_FirmaPhone = L"";
    m_ZakazAvtoZakazID = L"";
    m_ZakazAvtoDate=L"";
    m_ZakazAvtoCash = FALSE;
    m_ZayavkaNum = 0;
    m_nFields = 11;
    m_nDefaultType = snapshot;
}
 
CString CLabSet::GetDefaultConnect()
{
    return _T("DSN=Laba;DBQ=D:\\Lab9.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=20902312;UID=admin;");
}
 
CString CLabSet::GetDefaultSQL() 
{
    return _T("[Avto],[Firma],[Zakaz Avto],[Zayavka]");
}
 
void CLabSet::DoFieldExchange(CFieldExchange* pFX)
{
    pFX->SetFieldType(CFieldExchange::outputColumn);
    RFX_Text(pFX, _T("[Avto].[AvtoID]"), m_AvtoAvtoID);
    RFX_Text(pFX, _T("[Avto].[AvtoName]"), m_AvtoAvtoName);
    RFX_Long(pFX, _T("[Avto].[PriceR]"), m_AvtoPriceR);
    RFX_Long(pFX, _T("[Avto].[PriceO]"), m_AvtoPriceO);
    RFX_Text(pFX, _T("[Firma].[FirmaID]"), m_FirmaFirmaID);
    RFX_Text(pFX, _T("[Firma].[FirmaName]"), m_FirmaFirmaName);
    RFX_Text(pFX, _T("[Firma].[Phone]"), m_FirmaPhone);
    RFX_Text(pFX, _T("[Zakaz Avto].[ZakazID]"), m_ZakazAvtoZakazID);
    RFX_Text(pFX, _T("[Zakaz Avto].[Date]"), m_ZakazAvtoDate);
    RFX_Bool(pFX, _T("[Zakaz Avto].[Cash]"), m_ZakazAvtoCash);
    RFX_Long(pFX, _T("[Zayavka].[Num]"), m_ZayavkaNum);
 
}
 
#ifdef _DEBUG
void CLabSet::AssertValid() const
{
    CRecordset::AssertValid();
}
 
void CLabSet::Dump(CDumpContext& dc) const
{
    CRecordset::Dump(dc);
}
#endif //_DEBUG
1
08.05.2011, 17:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2011, 17:08
Помогаю со студенческими работами здесь

Задание по БД в аксесс
Не знаю как выполнить задание: Создать макрос для закрытия стартовой кнопочной формы и для...

Аксесс и дбгрид
Здравствуйте, мне нужна ваша помощь, суть в том что мне нужно связать 2 столбца (баллы и оценка)...

Запросы в Аксесс
Вывести список свободных столиков на определенную дату.

Конструктор в БД Аксесс
Ситуация следующая. 1. Есть БД из 3-х табл.: - альбомы - песни - связь (нужна для связки...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru