Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

база данных

9.5K
07 января 2005 года
bote
1 / / 07.01.2005
Хочу сделать приложение, использующее базу данных через Access в билдере.Подскажите, как?
1
07 января 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by bote
Хочу сделать приложение, использующее базу данных через Access в билдере.Подскажите, как?


Используя либо BDE либо АДО-компоненты, по другому никак...:D Или написав свои классы доступа...:D :D :D
Вобще то в билдере работает кнопка Фы1....

1.8K
08 января 2005 года
Azaze1
102 / / 08.01.2005
Привет всем! Небольшая проблемка с базами данных, может кто сталкивался:
Подключаю базу через ADO, база MS Access. В режиме проектирования жму ADOTable->TableName - вываливаются все таблицы, содержащиеся в контейнере, всё путём... Но некоторые имена талиц начинаются с "диеза" - #. Если выбрать одну из них и установить свойство ADOTable->Active = true - вылетает ошибка, Syntax error in FROM clause. Тоже вылетает, если всё это производить программно. Кто знает, такое дело лечится?
5.4K
08 января 2005 года
shur_a1981
18 / / 19.05.2004
Попробуй использовать BDE, с ADO сталкиваться приходилось, навороченная штуковина. А в BDE как-то проще.
1
08 января 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Azaze1
Привет всем! Небольшая проблемка с базами данных, может кто сталкивался:
Подключаю базу через ADO, база MS Access. В режиме проектирования жму ADOTable->TableName - вываливаются все таблицы, содержащиеся в контейнере, всё путём... Но некоторые имена талиц начинаются с "диеза" - #. Если выбрать одну из них и установить свойство ADOTable->Active = true - вылетает ошибка, Syntax error in FROM clause. Тоже вылетает, если всё это производить программно. Кто знает, такое дело лечится?


Это проблемка не с базами данных - это проблема в коде. Генетическом. Лечится переименованием без использования символов типа #%@ и им подобных, тем более в первом символе названия. В MS-диалекте SQL этот символ имеет свое специальное значение. Если переименовывать в лом, или еще какие либо причины - тогда надо в запросе использовать select * from [#TableName] - тогда отработает нормально. Но лучше обходится без подобных имен.

3.1K
08 января 2005 года
V_oron i
108 / / 01.12.2004
Цитата:
Originally posted by bote
Хочу сделать приложение, использующее базу данных через Access в билдере.Подскажите, как?


Ну, вообщем, с форума http://www.progz.ru. Где-там это в архиве...
З.Ы.: Аксес медленный, неповоротливый. Если на нём что-то делать, так на вбейсике прилагаемом к нему писать, ИМХО.

1.8K
08 января 2005 года
Azaze1
102 / / 08.01.2005
2kot_:База служебная, используется иной програмой, так что переименовывать таблицы нельзя =)) Но проблему я уладил, спасибо. Кстати, у меня возникли сбои при попытке подключить через BDE. В режиме проектирования Builder выкидывает окошко Login + Password, если попытаться указать имя таблицы в TableName. В ADO подобная шутка отключается прямо в свойствах, а вот можно ли это сделать в BDE?
1
10 января 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Azaze1
2kot_:База служебная, используется иной програмой, так что переименовывать таблицы нельзя =)) Но проблему я уладил, спасибо. Кстати, у меня возникли сбои при попытке подключить через BDE. В режиме проектирования Builder выкидывает окошко Login + Password, если попытаться указать имя таблицы в TableName. В ADO подобная шутка отключается прямо в свойствах, а вот можно ли это сделать в BDE?


Укажи ему DSN-name и в нем удали логин или укажи логин и пароль.

1.8K
30 января 2005 года
Azaze1
102 / / 08.01.2005
Привет всем. Есть два вопроса (по базам данных и Excel), может кто сталкивался - подскажите, буду благодарен.
1. Итак, есть подключение к mdb базе через ADO. Можно ли как-нибудь узнать имена всех таблиц, содержащихся в базе, чтобы потом пользователь мог сам выбрать из списка таблиц нужную и установить подключение?
2. Не подскажете, где можно найти достаточно информативные источники или книги для работы с Excel-ем в С++ Builder 6.0?
294
31 января 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Azaze1
Привет всем. Есть два вопроса (по базам данных и Excel), может кто сталкивался - подскажите, буду благодарен.
1. Итак, есть подключение к mdb базе через ADO. Можно ли как-нибудь узнать имена всех таблиц, содержащихся в базе, чтобы потом пользователь мог сам выбрать из списка таблиц нужную и установить подключение?


Спэшл фор акцесс:
SELECT [Connect], [Database], [Name], [Id] FROM [MSysObjects] WHERE [Type] = 1 AND [Flags] = 0;

А для моего любимого Oracle есть SELECT OWNER, TABLE_NAME FROM ALL_TABLES; 8)

685
31 января 2005 года
MANKOR
4 / / 20.01.2000
Нужно в таблице DBASE расширить одно символьное поле на 10 символов, программным образом. Пытаюсь сделать это черех fDbiDoRestructure пока не получается, может кто знает как это сделать.
1.8K
31 января 2005 года
Azaze1
102 / / 08.01.2005
Цитата:
Originally posted by Plisteron
Спэшл фор акцесс:
SELECT [Connect], [Database], [Name], [Id] FROM [MSysObjects] WHERE [Type] = 1 AND [Flags] = 0;



Можно на примере? Потому как у меня он чегой-то на MSysObj ругается...

294
01 февраля 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Azaze1
Можно на примере? Потому как у меня он чегой-то на MSysObj ругается...


MSysObjects -- скрытая псевдотаблица базы даннных MDB (типа словарь). Для работы с ней надо открыть БД в среде M$ Access, в настройках (сервис --> параметры) поставить галочку "показывать скрытые объекты", а потом в меню "защита" дать права админу (или другому пользователю, под которым ты к базе коннектишься) на чтение из таблицы MSysObjects, после чего у тебя этот запрос будет нормально выполняться.

302
01 февраля 2005 года
Sagittarius
648 / / 12.04.2003
Цитата:
Originally posted by MANKOR
Нужно в таблице DBASE расширить одно символьное поле на 10 символов, программным образом. Пытаюсь сделать это черех fDbiDoRestructure пока не получается, может кто знает как это сделать.


1. Создаешь новое поле необходимой длины
2. Копируешь в новое поле значения из старого поля
3. Старое поле удаляешь
4. Новое поле переименовываешь

259
01 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Sagittarius

1. Создаешь новое поле необходимой длины
2. Копируешь в новое поле значения из старого поля
3. Старое поле удаляешь
4. Новое поле переименовываешь


Лучше использовать SQL - запрос alter table.

685
02 февраля 2005 года
MANKOR
4 / / 20.01.2000
А как это сделать на практике, может есть код для примера. Пытаюсь использовать пример DBIResult fDbiDoRestructure1 из Help(a), но компилятор ругается на "&CurProps"
rslt = Chk(DbiGetCursorProps(hXCur, &CurProps));

Как правильно указать Handle курсора?
259
02 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by MANKOR
А как это сделать на практике, может есть код для примера. Пытаюсь использовать пример DBIResult fDbiDoRestructure1 из Help(a), но компилятор ругается на "&CurProps"
rslt = Chk(DbiGetCursorProps(hXCur, &CurProps));

Как правильно указать Handle курсора?


Посмотри здесь http://www.w3schools.com/sql/sql_alter.asp

1.8K
02 февраля 2005 года
Azaze1
102 / / 08.01.2005
Цитата:
Originally posted by Plisteron

MSysObjects -- скрытая псевдотаблица базы даннных MDB
...
нормально выполняться.


Great thanks. Ещё бы если это можно было организовать как-нито на программном уровне =) (я имею ввиду включение доступа к MSysObjects)

1.8K
06 февраля 2005 года
Azaze1
102 / / 08.01.2005
Ошибка PrimaryKey:

Есть контейнер mdb, в нём содержится до 100 таблиц. При попытке подключиться к некоторым таблицам (в основном - с длиными именами) через ADO, возникает ошибка типа "A component named PrimaryKey already exists". Притом, что SQL запрос к любой из этих таблиц проходит на "ура", и никаких проблем не возникает. Кто-нибудь знает, можно ли всё-таки установить подключение через ADO и с чем это может быть сязано?

И ещё вопрос: для того, чтобы подключиться к БД (локальной!) и найти там необх. данные, что будет быстрее: через ADO компоненты, с последующим установлением фильтра, или же через SQL запрос?
1
07 февраля 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Azaze1
Ошибка PrimaryKey:

Есть контейнер mdb, в нём содержится до 100 таблиц. При попытке подключиться к некоторым таблицам (в основном - с длиными именами) через ADO, возникает ошибка типа "A component named PrimaryKey already exists". Притом, что SQL запрос к любой из этих таблиц проходит на "ура", и никаких проблем не возникает. Кто-нибудь знает, можно ли всё-таки установить подключение через ADO и с чем это может быть сязано?


Для начала выполни в базе запрос примерно такого вида

 
Код:
SELECT DOCID, Count(DOCID)
FROM OrderMain
GROUP BY DOCID

где DOCID - ключевое поле таблицы,OrderMain - соответственно сама таблица. Скорее всего у тебя поле, указанное как ключевое, на самом деле таковым не является, т.е. для этого поля количество будет больше еденицы.
Цитата:
Originally posted by Azaze1
И ещё вопрос: для того, чтобы подключиться к БД (локальной!) и найти там необх. данные, что будет быстрее: через ADO компоненты, с последующим установлением фильтра, или же через SQL запрос?


Через АДО компоненты, используя SQL-запрос с последующим установлением нужного фильтра...:) Используй компонент типа ADOQuery - и жизнь твоя будет гораздо проще.
Он позволяет работать с SQL напрямую:

 
Код:
ADOQuery1->SQL->Clear();
AnsiString SQL = "SELECT * FROM TABLE WHERE FIELD1="+MYPARAM1+" AND FIELD2="+MYPARAM2;
ADOQuery1->SQL->Add(SQL);
ADOQuery1->Active = true;

или через параметры. А также позволяет использовать локальный фильтр:
 
Код:
ADOQuery1->Filter = "FIELD1<>0";
ADOQuery1->Filtered = true;
1.8K
24 февраля 2005 года
Azaze1
102 / / 08.01.2005
Прива. Такой вопрос:
Получаю данные из таблицы (.mdb контейнер) при помощи ADOQuery, что-то изменяю в них, сортирую по определённым полям ( <... Order By...> ), а как потом эту модифицированную таблицу можно записать на место старой?
(если коротко - как, к примеру, установить сортировку в таблице и сохранить проведёные изменения)
259
24 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Azaze1
Прива. Такой вопрос:
Получаю данные из таблицы (.mdb контейнер) при помощи ADOQuery, что-то изменяю в них, сортирую по определённым полям ( <... Order By...> ), а как потом эту модифицированную таблицу можно записать на место старой?
(если коротко - как, к примеру, установить сортировку в таблице и сохранить проведёные изменения)


Не очень понятно зачем, но скажем так:

Код:
ADOQueryDel->SQL->Add("delete * from table"); //Удаляем все нафиг из таблицы
ADOQueryDel->ExecSQL();
ADOQueryUpd->SQL->Add("update table set (f1 = :p_f1,f2 = :p_f2..."); //Изменяем поля в таблице
ADOQuery->First();
while(!ADOQuery->Eof)
{
   ADOQueryUpd->Parameters->ParamByName("p_f1")->Value = ADOQuery->FiledByName("f1")->Value;
   ADOQueryUpd->Parameters->ParamByName("p_f2")->Value = ADOQuery->FiledByName("f2")->Value;
   .......
   ADOQueryUpd->ExecSQL();
   ADOQuery->Next();
}
1.8K
26 февраля 2005 года
Azaze1
102 / / 08.01.2005
Цитата:
Originally posted by AlexandrVSmirno

...ADOQueryDel->SQL->Add("delete * from table"); //Удаляем все нафиг из таблицы...


За пример изменения таблицы - спасибо. А как насчёт сохранения сортировки по какому-либо полю? Без удаления нафиХ всего из таблицы... ;)

294
28 февраля 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Azaze1

За пример изменения таблицы - спасибо. А как насчёт сохранения сортировки по какому-либо полю? Без удаления нафиХ всего из таблицы... ;)


Насколько я понял вопрос, хочется хранить таблицу в упорядоченном по какому-то полю виде?
Зачем тебе "лошадь"? Пиши "конь" и всё! (с)...
Зачем хранить отсортированные таблицы, когда есть чудная конструкция [FONT=courier new]SELECT * FROM table ORDER BY field1, field2[/FONT]? Для ускорения операции выборки советую создать индекс по тем колонкам, по которым указан [FONT=courier new]order by[/FONT].

1.8K
28 февраля 2005 года
Azaze1
102 / / 08.01.2005
Цитата:
Originally posted by Plisteron

Насколько я понял вопрос, хочется хранить таблицу в упорядоченном по какому-то полю виде?
Зачем тебе "лошадь"? Пиши "конь" и всё! (с)...
Зачем хранить отсортированные таблицы, когда есть чудная конструкция [FONT=courier new]SELECT * FROM table ORDER BY field1, field2[/FONT]? Для ускорения операции выборки советую создать индекс по тем колонкам, по которым указан [FONT=courier new]order by[/FONT].


Блин, если б весь вопрос в этом был - так никаких проблем! :!!!: Просто есть mdb база, в которой одна не совсем умная программка из записей сделала винегрет. Вот и хотел сделать небольшую лечилку, чтобы всё можно было упорядочить.

И ещё: как можно из программы отключить ключевое поле в выбранной таблице? Ну типа сделать его не ключевым.

259
28 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Azaze1

Блин, если б весь вопрос в этом был - так никаких проблем! :!!!: Просто есть mdb база, в которой одна не совсем умная программка из записей сделала винегрет. Вот и хотел сделать небольшую лечилку, чтобы всё можно было упорядочить.

И ещё: как можно из программы отключить ключевое поле в выбранной таблице? Ну типа сделать его не ключевым.


Посмотри команду sql alter table

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог