Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/12: Рейтинг темы: голосов - 12, средняя оценка - 4.50
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
1

Ошибка при компиляции

17.08.2009, 13:55. Просмотров 2209. Ответов 22
Метки нет (Все метки)

Написали приложение к БД на С++ Builder 6, в качестве СУБД взяли Microsoft SQL Server 2000, приложение будет использоваться на компьютере, где нельзя поставить серверную часть SQL Server 2000, поэтому из SQL Server 2000 экспортировали БД в Microsoft Access. После в Источниках данных (ODBC) добавили в "Системный DNS" эту БД, в качестве драйвера взяли Microsoft Access Driver. В С++ Builder 6 в ADO Connection переставили String Connection с SQL на Access (в "Поставщике данных" использовали Microsoft OLE DB Provider for ODBC Drivers), используя уже БД Access'овскую.При компиляции выдал такую ошибку - она на рисунке, выкладываю тут. В чём дело может быть?

Вот картинка
0
Миниатюры
Ошибка при компиляции  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2009, 13:55
Ответы с готовыми решениями:

Ошибка при компиляции
Подключаюсь к DBF файлу через ADO ADOConnection - ADOTable - DataSourse...

Ошибка при компиляции в элементе DBGridEh
Добрый день. Пытаюсь воспользоваться компонентом DBGridEh из библиотеки...

Появляется ошибка при компиляции кода
void __fastcall TForm3::Button4Click(TObject *Sender) { ...

Ошибка при компиляции приложения с AlphaControls
IDE - Embarcadero Rad Studio XE3 (XE2 - там аналогичная ситуация) Доброе время...

Ошибка при компиляции программы: project already open in IDE?
После нажатия RUN выдает такую ошибку, что делать? Could not delete C:\Program...

22
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
17.08.2009, 14:37 2
ну вообще можно обойтись и без источника в ОДБЦ, чтобы к базе аксессовской законнектиться, провайдер - Microsoft.Jet.OLEDB.4.0 и путь к базе, вот и все... а вы покажите-ка именно код, где выпадает ошибка
1
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
17.08.2009, 14:44  [ТС] 3
Так дело в том, что не указывает на ошибку в коде... Видимо не в коде... просто выдаёт сообщение об ошибке (рисунок) и всё...
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
17.08.2009, 14:47 4
4aynik, вообще это ошибка возникла при исполнении, а не при компиляции, ну если уж на то пошло... т.е. вам надо либо трассировкой, либо еще каким-то иным способом локализировать ее местонахождение
1
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
17.08.2009, 15:01  [ТС] 5
При выборе провайдера - Microsoft.Jet.OLEDB.4.0 заработало вроде... но без источника ОДБЦ не обойтись видимо - доступ к БД должен быть многопользовательским...
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
17.08.2009, 15:09 6
4aynik, вообще я так и не понял, почему отказались от sql-сервера, потому что в аксессе есть поддержка многопользовательского режима, но как-то надежнее все же взять специализированное ПО, а не заниматься развратом мозга...
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
17.08.2009, 15:17  [ТС] 7
Потому что нету лишнего компа, куда можно поставить серверную часть SQL Server... А сносить систему и ставить винды сервер 2003 нельзя, типа заказчику так не надо...
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
17.08.2009, 15:19 8
4aynik, ну вообще если поставите 2000-ый сервак, то потянет даже несильно мощная тачка... ОДБЦ вам тоже особо не надо, даже для аксесса... можно расшарить папку с ним и сетевыми дисками на всех машинах сделать его...
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
17.08.2009, 17:03  [ТС] 9
С аксессом возникла трудность... в коде приложения используется sql-запрос на создание таблиц с определёнными названиями полей и их типами и прочее... а вот под аксесс не получается собрать правильно приложение - при создании таблиц выдаёт ошибку о том, что неверный синтакс... я с аксессом почти не знаком, щас почитал запросы на создание таблиц, но там описано создание из источника - тоже таблицы, а у нас таблица с нуля создаётся...
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
17.08.2009, 17:09 10
вам надо почитать не справку по самому аксессу, а справку по sql, который в аксессе
0
БурундукЪ
9556 / 2559 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
17.08.2009, 17:16 11
Цитата Сообщение от 4aynik Посмотреть сообщение
в коде приложения используется sql-запрос на создание таблиц с определёнными названиями полей и их типами и прочее
можна запрос?

Добавлено через 3 минуты 46 секунд
Цитата Сообщение от 4aynik Посмотреть сообщение
таблица с нуля создаётся.
для создания таблицы с нуля
SQL
1
SELECT * INTO MyTableNew FROM MyTableOld
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
18.08.2009, 12:23  [ТС] 12
Вот запрос:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
Query1->SQL->Clear();
Text="CREATE TABLE [Table"+Table1->FieldByName("ID")->AsString+"] ( "+
  "[N1] [int] NULL ,"+
  "[N2] [varchar] (90) NULL ,"+
  "[N3] [varchar] (90) NULL ,"+
  "[N4] [varchar] (90) NULL ,"+
  "[N5] [int] NULL ,"+
  "[N6] [varchar] (90) NULL ,"+
  "[N7] [int] IDENTITY (1, 1) NOT NULL"+   ") ON [PRIMARY]";
 
Query1->SQL->ADD(Text);
Query1->ExecSQL();
Добавлено через 3 минуты 49 секунд
Цитата Сообщение от БурундукЪ Посмотреть сообщение

для создания таблицы с нуля
SQL
1
SELECT * INTO MyTableNew FROM MyTableOld
Это в аксессе прописывать или же в коде самого приложения?
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
18.08.2009, 12:41 13
4aynik, а это уже неважно... либо там, либо там... как вам лучше...
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
19.08.2009, 14:13  [ТС] 14
После того, как таблица создана, чтобы открыть её происходит процедура кнопки "Выбрать". Вот код:
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
{TMash->Active=false;
TMash->TableName="Table"+TIzdeliya->FieldByName("ID")->AsString;
TMash->Active=true;
TMash->Close();
TMash->Open();
Label4->Caption="Изделие "+TIzdeliya->FieldByName("IZD")->AsString;
Panel2->BringToFront();
 
TMash->Sort = "NPP ASC";
TSpisok->First();
while (TSpisok->Eof==false)
  {
  if ((TSpisok->FieldByName("N_CHERT")->AsString!="")
  &(ENCH->Items->IndexOf(TSpisok->FieldByName("N_CHERT")->AsString)==-1))
    {
    ENCH->Items->Add(TSpisok->FieldByName("N_CHERT")->AsString);
    }
  if ((TSpisok->FieldByName("NAIM_DSE")->AsString!="")
  &(ENAIM->Items->IndexOf(TSpisok->FieldByName("NAIM_DSE")->AsString)==-1))
    {
    ENAIM->Items->Add(TSpisok->FieldByName("NAIM_DSE")->AsString);
    }
  TSpisok->Next();
  }
ENCH->Sorted=true;
ENAIM->Sorted=true;
ENCH->Text="";
ENAIM->Text="";
EPRIM->Text="";
EZAVN->Text="";
EOTMET->Text="";}

Но после настройки ADO Connection под Access при нажатии этой кнопки вот такая ошибка выскакивает - на рисунке

БД не создаётся с помощью того кода, который я использую...

Не подскажете, как вот это использовать "SELECT * INTO MyTableNew FROM MyTableOld"???
0
Миниатюры
Ошибка при компиляции  
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
19.08.2009, 16:23 15
4aynik, погоди, после выполнения кода из поста 12 - ничего не происходит?
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
19.08.2009, 16:35  [ТС] 16
VoodooMan, SELECT * INTO MyTableNew FROM MyTableOld - это имеете ввиду?
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
19.08.2009, 16:38 17
4aynik, неее -CREATE TABLE [Table...
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
19.08.2009, 16:49  [ТС] 18
Происходит только добавление записи в таблицу основную, а сама таблица не создаётся...
0
Lord_Voodoo
Супер-модератор
8609 / 2240 / 133
Регистрация: 07.03.2007
Сообщений: 10,830
Завершенные тесты: 1
19.08.2009, 16:50 19
4aynik, вы хотите сказать, что запрос create table добавляет запись?
0
4aynik
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
19.08.2009, 16:54  [ТС] 20
VoodooMan, ну запрос этот должен таблицу создавать, но в данном моём случае не создаёт её.
0
19.08.2009, 16:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2009, 16:54

Ошибка при компиляции
Приветствую всех, все работало хорошо, но при добавлении Label2 нажал на него 2...

Ошибка при компиляции
Доброго времени суток. Стоит задача - разработать некое подобие ГИС для...

Ошибка при компиляции
Выдает ошибку Fatal: Unable to open file 'RAIZECOMPONENTSVCL.LIB' ету...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru