Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

Как создать таблицу программно?   Найти похожие ветки 

 
janb   (2004-12-06 08:28) [0]

Уважаемые мастера ответь пожалуйста на вопрос.
У меня на форме компоненты Table, adotable1, adoconnection
table1 подключен к таблице sak.dbf, adoquery на mysql базу
Собственно вопрос: Как создать на mysql базе такую же таблицу как sak.dbf (т.е. с такой же структурой).
Заранее благодарен.


 
Александр Иванов ©   (2004-12-06 08:57) [1]

TBatchMove


 
janb   (2004-12-06 09:14) [2]

Спасибо за ответ. Но я как то не понял как она работает. Есть описание на анг. Где я ничего не понял. есть exampe  где тоже что -то другое делается
Если можно поподробнее, на русском, и желательно к моему вопросу пожалуйста.


 
Александр Иванов ©   (2004-12-06 09:30) [3]

Он работает к сожалению только с BDE. И копирует данные из одного набора данных (Sourse), в другой (Destination), также может создать таблицу-приемник.


 
ocean   (2004-12-06 10:16) [4]

Не знаю как c MySQL, но вот фрагмент рабочей программы. Используется SQL-запрос create table. Вместо этого можно исп. метод DataSource.CreateTable, в Help есть хороший пример.
Не забывайте также про create index.

//Create DB
   OldSQL := SQL.Text;
   SQL.Text := "create table telegrs (ID int, KZU varchar(50), III varchar(6), TitleNum int, Category varchar(30), VisaType varchar(40)," + "Reccurence varchar(30), Purpose varchar(40), Organization varchar(100), Route varchar(200), DateEntry1 datetime, DateEntry2 datetime, DateDeparture1 datetime, DateDeparture2 datetime," + "PrefixLat varchar(10), PrefixRus varchar(10), FNameLat varchar(30), FNameRus varchar(30), SNameLat varchar(60), SNameRus varchar(60), Sex varchar(1), DateBirth varchar(8)," + "Passport varchar(20), Citizen varchar(30), NumInvit varchar(10), NumVBlank varchar(10), DateIssue datetime, Transport varchar(150), NumTlg varchar(10), DateTlg datetime," + "Voucher varchar(30), Days int, Child varchar(60), Pers_note varchar(60), Group_note varchar(60), iField1 int, iField2 int, iField3 int, iField4 int, iField5 int, app varchar(250))"; {}
   S := "create table telegrs (";
   for I := 1 to MAXFIELDS do if aFields[I] <> "" then
     case aSizes[I] of
       -1: S := S + aFields[I] + " datetime,";
       0: S := S + aFields[I] + " int,";
       else S := S + aFields[I] + " varchar(" + IntToStr(aSizes[I]) + "),";
     end; { case }
   S[Length(S)] := ")";
   SQL.Text := S;
   ExecSQL;
   SQL.Text := OldSQL;
   Active := TRUE;
 end; { with }
end;


 
janb   (2004-12-06 11:22) [5]


> Александр Иванов ©   (06.12.04 09:30) [3]
> Он работает к сожалению только с BDE. И копирует данные
> из одного набора данных (Sourse), в другой (Destination),
> также может создать таблицу-приемник.

А нету такого рода компонент в других библиотеках?


> ocean   (06.12.04 10:16) [4]

Я хотел бы использовать программу для несколких таблиц, т.е. структура таблицы может заранее неизвестно


 
ocean   (2004-12-06 11:27) [6]

кто мешает каждый раз строить нужную строку запроса create table?


 
janb   (2004-12-06 11:37) [7]

mne nujno shto bi SQL.Text генерировался автоматически
я же заранее не знаю структуру


 
Александр Иванов ©   (2004-12-06 11:40) [8]

Про другие компоненты не слышал, поищи.


 
msguns ©   (2004-12-06 11:49) [9]

1. Открывается НД с исходной таблицей.
2. Перебираем коллекций TFieldDefs и TIndexDefs и на основе полученных данных строим DDL запрос.
3. Запускаем запрос.
4. Получаем пустую таблицу со структурой, аналогичной исходной.


 
janb   (2004-12-06 11:58) [10]


> msguns ©   (06.12.04 11:49) [9]

И как этот DDL запрос выглядить?:)


 
msguns ©   (2004-12-06 12:02) [11]

CREATE TABLE..

Изучаем SQL-синтаксис


 
janb   (2004-12-06 12:13) [12]

Я сейчас нашел в форумах что прога Datapump, делает это я попробовал все получилось. А по какому принципу работает эта прога


 
ocean   (2004-12-06 12:23) [13]

все же не пойму, в чем проблема

Var S, Field1Name, Field1Type : String;
   Field1Length : Integer;

S := "create table Test (";
S := S + Field1Name + " " + Field1Type + "(" + IntToStr(Field1Length) + ")"; // + ... и т.д.

QUERY1.SQL.Add(S);


 
janb   (2004-12-07 07:38) [14]

Спасибо океан



Страницы: 1 вся ветка

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1103198145
Roadstar
2004-12-16 14:55
2005.01.02
ListView


1-1103125417
Чайник
2004-12-15 18:43
2005.01.02
Как создать объект по имени его класса


3-1102089690
MaxDDinc
2004-12-03 19:01
2005.01.02
Фиксирование изменений в БД MS SQL Server 2000


1-1103302022
DarkLord
2004-12-17 19:47
2005.01.02
Конвертация HTML в TXT


4-1100590952
Gefest
2004-11-16 10:42
2005.01.02
Как перехватывать нажатия клавиш?