Форум: "Базы";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизКак создать таблицу программно? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.063 c