Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 19.05.2008, 13:06   #1
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
Репутация: 10
Вопрос Создание новых таблиц в Access через Delphi

Как создать новую таблицу или саму базу данных Access через Delphi?
Как скопировать уже имеющуюся таблицу с новым именем и ту которую копировали очистить?
mopozoff вне форума   Ответить с цитированием
Старый 19.05.2008, 13:52   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

Выполни через ADOQuery запрос на создание таблицы:
Код:

CREATE TABLE `q` (
`y` VARCHAR( 43 ) NOT NULL 
);

для примера.

Для копирования данных должен подойти INSERT

Для очистки таблицы примени метод EmptyTable
Stilet вне форума   Ответить с цитированием
Старый 20.05.2008, 11:09   #3
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
Репутация: 10
По умолчанию

Куда в ADOQuerry это писать?
Как добраться до таблицы которая в Access (что-то типа такого: ADO... . <имя таблицы> . <параметры и методы>), чтобы использовать EmptyTable?
Какие параметры должны быть у INSERT?
mopozoff вне форума   Ответить с цитированием
Старый 20.05.2008, 11:41   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

Цитата:
Куда в ADOQuerry это писать?
Код:

with adoquery1.sql do begin
 add('CREATE TABLE q (y VARCHAR( 43 ) NOT NULL); ');
end;

Только тут надо с ковычками не переназапутать

Цитата:
Как добраться до таблицы которая в Access (что-то типа такого: ADO... . <имя таблицы> . <параметры и методы>), чтобы использовать EmptyTable?
Я наверное маненько набрехав, ибо в ADO (только щаз вспомнил) нет такого метода, но ничего
команда SQL Delete from <таблица> (ее вызывать через ExecSQL) опустошит таблицу.
Цитата:
Какие параметры должны быть у INSERT?
А в хелп по SQL заглянуть?
Stilet вне форума   Ответить с цитированием
Старый 21.05.2008, 02:48   #5
Dux
Delphi Master
Участник клуба
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 810
Репутация: 165
По умолчанию

Цитата:
Сообщение от mopozoff Посмотреть сообщение
Как создать новую таблицу или саму базу данных Access через Delphi?
Код:

{Using ADOX:  uses ComObj; // You can with ADOX (Microsoft ADO Extensions for DDL and Security)}

function CreateAccessDatabase(FileName: string): string;
var 
     cat: OLEVariant; 
begin 
   Result := ''; 
         try 
          cat := CreateOleObject('ADOX.Catalog');       
          cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');    
          cat := NULL; 
        except on e: Exception do 
       Result := e.message; 
       end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
CreateAccessDatabase('c:\Testdb.mdb'); 
end;

Dux вне форума   Ответить с цитированием
Старый 22.05.2008, 10:38   #6
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
Репутация: 10
По умолчанию

Пишу такой текст:

adoquery1.Close;
adoquery1.SQL.Clear;
with adoquery1.sql do begin
add('CREATE TABLE quit (id smallint NOT NULL PRIMARY KEY,fio varchar(50)not null); ');
end;
adoQuery1.Open;

Таблица создаётся, всё ок, но вылетает ошибка "ADOQuery1: CommandText does not return a result set" Русская версия "Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции"
Как с ней бороться?
mopozoff вне форума   Ответить с цитированием
Старый 22.05.2008, 10:45   #7
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

Цитата:
Как с ней бороться?
adoQuery1.ExecSQL;
P.S. Читать посты нужно внимательно.
Stilet вне форума   Ответить с цитированием
Старый 22.05.2008, 10:46   #8
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Адрес: Новый Уренгой
Сообщений: 103
Репутация: 12
По умолчанию

Делай не
adoQuery1Open;,
а
adoQuery1.ExecSQL;
AlexandrSid вне форума   Ответить с цитированием
Старый 22.05.2008, 11:34   #9
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
Репутация: 10
По умолчанию

Ещё вопрос.
Как из базы считать список таблиц, скажем, в Listbox?
И проверить имеется ли таблица с какми-либо именем в базе?

Последний раз редактировалось mopozoff; 22.05.2008 в 11:39.
mopozoff вне форума   Ответить с цитированием
Старый 23.05.2008, 10:33   #10
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Адрес: Minsk City
Сообщений: 476
Репутация: 41
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
adoQuery1.ExecSQL;
P.S. Читать посты нужно внимательно.
а уладять таблицу нужно, как я понял через DELETE TABLE. Так?
Так вот если так, то именно на ExecSQL программа и ругается
__________________
Life if about choices
Make the right choice
TaTT DoGG вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание таблиц MAcK Общие вопросы Delphi 4 07.11.2007 16:51
Связывание таблиц FoxPro в Access 2002 Nessa Microsoft Office Access 2 04.11.2007 10:54
Через запрос перенести данные с 6 таблиц Таня84 БД в Delphi 5 22.03.2007 16:46
Создание новых объектов Washington Общие вопросы Delphi 1 10.03.2007 22:57
Создание новых разделов PAVEL315 О форуме и сайтах клуба 14 21.01.2007 00:05


16:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru