Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание таблиц в БД 
:(
    Опции темы
alex_set
Дата 17.4.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Помогите создать таблицы в базе данных. Надо чтобы пользователь сам решал сколько будет колонок, название, тип и размер их.
1. Пытался сделать через StringGrid. Чтобы пользователь добовлял название колонок, тип и размер. Не получилось. 
Подскажите как сделать что-то похожее и какие элименты использовать.
2. Подскажите как свормировать SQL запрос для создания таблицы в базе данных.
3. Помогите отфильтрованную таблицу сохранить как новую.
PM MAIL   Вверх
Rodman
Дата 17.4.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



Цитата(alex_set @  17.4.2008,  13:58 Найти цитируемый пост)
1. Пытался сделать через StringGrid. Чтобы пользователь добовлял название колонок, тип и размер. Не получилось. 
Подскажите как сделать что-то похожее и какие элименты использовать.
нормальное решение.. где именно не получается?
Цитата(alex_set @  17.4.2008,  13:58 Найти цитируемый пост)
2. Подскажите как свормировать SQL запрос для создания таблицы в базе данных.
Код

Create Table ...

Цитата(alex_set @  17.4.2008,  13:58 Найти цитируемый пост)
3. Помогите отфильтрованную таблицу сохранить как новую. 

в смысле? что имеется ввиду под - отфильтрованной?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
alex_set
Дата 17.4.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



1. Покачто не получается из Edit'ов вставить текст в StringGrid.
2. А она сразу будет создоватся в базе дынных .mdb ?
3. Т.е. начальная таблица была отфильтрована по некоторым критериям и в DBGrid появится новая. Как сохранить ее под другим именем.
PM MAIL   Вверх
Rodman
Дата 17.4.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



Цитата(alex_set @  17.4.2008,  14:55 Найти цитируемый пост)
1. Покачто не получается из Edit'ов вставить текст в StringGrid.
как ты это делаешь? покажи!
Цитата(alex_set @  17.4.2008,  14:55 Найти цитируемый пост)
2. А она сразу будет создоватся в базе дынных .mdb ?
ну если все правильно подключил, то ДА!
Цитата(alex_set @  17.4.2008,  14:55 Найти цитируемый пост)
3. Т.е. начальная таблица была отфильтрована по некоторым критериям и в DBGrid появится новая. Как сохранить ее под другим именем. 
ну это уже надо сначала запросом создать таблицу, а потом копировать ее построчно из DBGrida!

PM MAIL WWW Skype GTalk YIM MSN   Вверх
alex_set
Дата 18.4.2008, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Дедаю так 
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
i=1;
StringGrid1->Rows[i]->Add(Edit1->Text);
StringGrid1->Rows[i]->Add(Edit2->Text);
StringGrid1->Rows[1]->Add(Edit3->Text);
i=i+1;
}

Но не получается чтоб при каждом нажатии кнопки запись добовлялась на новую строку.

Это сообщение отредактировал(а) alex_set - 18.4.2008, 01:47
PM MAIL   Вверх
Rodman
Дата 18.4.2008, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



Цитата(alex_set @  18.4.2008,  00:46 Найти цитируемый пост)
Но не получается чтоб при каждом нажатии кнопки запись добовлялась на новую строку.
ну конешно не будет.. т.к. ты каждый раз по новой объявляешь i и она всегда равна 1
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        StringGrid1->Cells[0][i]=Edit1->Text;
        StringGrid1->Cells[1][i]=Edit2->Text;
        StringGrid1->Cells[2][i]=Edit3->Text;
        i++;
}


Добавлено через 16 секунд
см. строки 11, 19-25
PM MAIL WWW Skype GTalk YIM MSN   Вверх
alex_set
Дата 18.4.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Понял свою ошибку надо было обьявлять глобальную переменную.
А теперь не подскажеш как теперь из этих данных создать таблицу.
Делать через CreateTable, а Cells[0..2][i] подставить как название, тип и размер???
PM MAIL   Вверх
Rodman
Дата 18.4.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



Цитата(alex_set @  18.4.2008,  11:46 Найти цитируемый пост)
Делать через CreateTable, а Cells[0..2][i] подставить как название, тип и размер??? 
какие там поля будут присутствовать? их же сразу также надо прописывать!

PM MAIL WWW Skype GTalk YIM MSN   Вверх
alex_set
Дата 18.4.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Тогда скажи как надо делать??
Например в StringGrid получилась такая запись.
-------------------------------
| имя         | string   | 20 |
| фамилия | string  | 20 |
| адрес     | string   | 20 |
| возраст  | integer | 5  |
-------------------------------
Как из этого создать таблицу??
PM MAIL   Вверх
Rodman
Дата 18.4.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



я вот тока не вижу первичного ключа, но я на всякий пожарный добавлю
Код

Query.Close;
Query.SQL.Clear;
Query.SQL.Add('CREATE TABLE '+StringGrid1->Cells[0][i]+' (TestID int PRIMARY KEY, имя TEXT(20), фамилия  TEXT(20), адрес TEXT(20), возраст INTEGER);');
Query.ExecSQL;
пробуй
PM MAIL WWW Skype GTalk YIM MSN   Вверх
alex_set
Дата 22.4.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Код

void __fastcall TForm1::Button2Click(TObject *Sender)
{
ADOConnection1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\123.mdb;Persist Security Info=False";
ADOTable1->TableName="qwe";
ADOTable1->Active=true;
}

Подскажите праильно ли написано 3 строка и работа с ADO. А то ошибку выдает при нажатии кнопки.
И как убрать требование пароля.

PM MAIL   Вверх
Alca
Дата 23.4.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



C:\123.mdb -> C:\\123.mdb
LoginPrompt = false;


--------------------
PM WWW ICQ Skype Jabber   Вверх
alex_set
Дата 23.4.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Цитата(Alca @ 23.4.2008,  13:52)
C:\123.mdb -> C:\\123.mdb
LoginPrompt = false;

Спасибо помогло.
PM MAIL   Вверх
AntonBunin
Дата 3.9.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



Приветствую всех!
В общем о задаче...
(еще только учусь сильно не ругайте если что не так)

1. ADO -> База данных (ms access`03) (в ней таблица Т1 );
2. Пользователь выбрал критерий поиска (или фильтра) и нашел нужную запись (строку) в Т1 -> Grid отобразил запись;
это реализовано
3. Создается пустая Т2, в которой присутствуют [B]все поля Т1;[/B]
4. Выбранная запись копируется в Т2;
5. ....далее п.2-> <-п.3;
6. Пользователь закончил выбор -> T2 сохраняется в БД.

Собственно вопрос то в том, как можно создать пустую Т2, но с теми же полями?
Предполагаю, что можно тупо скопировать Т1 и очистить ее  smile  Подскажите пожалуйста синтаксис для данной процедуры.? Может есть более изящный способ? Красоты то хочется  smile 

И ещё, можно ли будет работать со значениями Т1 и/или Т2 (типа float и double) как с переменными в математических формулах?
Спасибо!
PM MAIL ICQ   Вверх
AntonBunin
Дата 3.9.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



В принципе, если свойство Fields  объекта Table занести данные о столбцах то при СreateTable должна получится таже табличка, только пустая...вроде ....буду пробовать...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.