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

Ваш аккаунт

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

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

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

MySQL + Bilder 6

8.4K
23 ноября 2004 года
cabich
11 / / 23.11.2004
Я уже запарился !!
Как к Мускулевской таблице обратиться и Как получить из неё данные!!!???!!!(если можно подробно)(или ссылочки)
317
23 ноября 2004 года
Relax
573 / / 20.09.2000
качаешь с сайта MySQL дрова ODBC, ставишь, потом прописываешь источник данных в Панель управления->Администрирование->Источники данных, а потом в своей проге юзаешь компоненты ADO... и все будет...
8.4K
23 ноября 2004 года
cabich
11 / / 23.11.2004
Эт то я Сделал а вот как получить значения полей таблицы в какойнить Массив или в стринг ??? Если есть Русское Руководство по ADO Мож Ссылку дать??
317
25 ноября 2004 года
Relax
573 / / 20.09.2000
там все также как и в компонентах BDE, только небольшие отличия... вопрос слишком пространный - задавай конкретнее - помогу...

если все сделал как я говорил: установил дрова, прописал источник данных, поставил на форму компонент ADOTable и прописал в нем ранее созданный источник и имя таблицы, то надо поставить в этом компоненте Active=true - таблица откроется...
потом нужно поставить компонент TDataSource и в нем прописать твой TADOTable, а потом, этот TDataSource прописать в каком-нибудь визуальном компоненте, например TDBGrid...

обращение к полям таблицы:
ADOTable1->FieldByName("FieldName")->Value
8.4K
26 ноября 2004 года
cabich
11 / / 23.11.2004
с дровами я так и сделал
Мне надо Таблицу(знчения некоторых полей) вывести на экран в полноэкранном режиме .Вот!
не погу понять как Запрос создать ,
Тма есть и ADOCommand, ADODateset и т.д Просто в помаши на Англицком мне не оч понятно я вот и исчу на русском помощь или тип того или чтоб кто нить обьяснил если можно с примером.
317
26 ноября 2004 года
Relax
573 / / 20.09.2000
ну дык я ж говорю... TADOTable юзай - это проще всего... пришли мне на мыло свою таблицу - наваяю пример... [email]relax@ural-sb.ru[/email]
1
26 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by cabich
с дровами я так и сделал
Мне надо Таблицу(знчения некоторых полей) вывести на экран в полноэкранном режиме .Вот!
не погу понять как Запрос создать ,
Тма есть и ADOCommand, ADODateset и т.д Просто в помаши на Англицком мне не оч понятно я вот и исчу на русском помощь или тип того или чтоб кто нить обьяснил если можно с примером.


Не очень понятно, чего надо - составить запрос или вывести в полноекранном режиме? ИМХО задачи абсолютно разные. Использовать компоненты типа TADOTable - как говорится на вкус и цвет...но я например избегаю, если это только полностью и бесповоротно не решает ВСЕХ задач. Обрисуй подробнее задачу - у меня некоторые программы работают через АДО - могу скинуть пример. И обычно использую что нибудь типа TADOStoredProcedure - все отрабатывает на ура. А не работать на прямую с таблицами в базе - это классика. И пренебрегать этим не стоит. Проблем будет больше.

317
26 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by kot_

Не очень понятно, чего надо - составить запрос или вывести в полноекранном режиме? ИМХО задачи абсолютно разные. Использовать компоненты типа TADOTable - как говорится на вкус и цвет...но я например избегаю, если это только полностью и бесповоротно не решает ВСЕХ задач. Обрисуй подробнее задачу - у меня некоторые программы работают через АДО - могу скинуть пример. И обычно использую что нибудь типа TADOStoredProcedure - все отрабатывает на ура. А не работать на прямую с таблицами в базе - это классика. И пренебрегать этим не стоит. Проблем будет больше.



а что за проблемы будут? я сам, если честно, чаще пользуюсь TADOQuery, но и TADOTable иногда - и каких-то неразрешимых проблем не встречал...

1
26 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Relax


а что за проблемы будут? я сам, если честно, чаще пользуюсь TADOQuery, но и TADOTable иногда - и каких-то неразрешимых проблем не встречал...


Прошу прощения - не верно выразился - про проблемы. Это относится к работе напрямую с таблицами, а не непосредственно к компоненту :) - достаточно не редкая ситуация, когда в процессе работы программы выясняется, что надо бы изменить X на Y - предположим вместо одного столбца надо выводить другой, ситуация далеко не самая редкая - тип данных тот же, по сути данные те же. Если работаешь через запрос или ХП - не проблема. Если работаешь прямо с таблицей - это перекомпиляция модуля как минимум. Я не имею ввиду, что проблема страшная - у меня вон чудо сидит - лопатит свой басиковский проект три раза в день, он уже и сам помоему одурел - по 50 столбцов в таблице, реально из них работает до 10 - и ему ничего.:) Лишние пятнатцать минут перекура.

317
26 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by kot_

Прошу прощения - не верно выразился - про проблемы. Это относится к работе напрямую с таблицами, а не непосредственно к компоненту :) - достаточно не редкая ситуация, когда в процессе работы программы выясняется, что надо бы изменить X на Y - предположим вместо одного столбца надо выводить другой, ситуация далеко не самая редкая - тип данных тот же, по сути данные те же. Если работаешь через запрос или ХП - не проблема. Если работаешь прямо с таблицей - это перекомпиляция модуля как минимум. Я не имею ввиду, что проблема страшная - у меня вон чудо сидит - лопатит свой басиковский проект три раза в день, он уже и сам помоему одурел - по 50 столбцов в таблице, реально из них работает до 10 - и ему ничего.:) Лишние пятнатцать минут перекура.



честно говоря, что-то я все равно не догоняю... может просто вечер - я заметил, вечером у меня мозг тормозит :)... пусть даже работаешь с таблицей напрямую - можно ведь динамически в программе менять отображаемый столбец, их количество и т.п.

1
26 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Relax


честно говоря, что-то я все равно не догоняю... может просто вечер - я заметил, вечером у меня мозг тормозит :)... пусть даже работаешь с таблицей напрямую - можно ведь динамически в программе менять отображаемый столбец, их количество и т.п.


Ну например? На этапе разработки использовался столбец "Field", спустя полгода-год ввели новый столбец - старый переименовали, по целому ряду причин. :) Если это рабочая база - можно привести 1001 причина по которой эта операция нужна - и никого не волнуют проблемы программиста.
Если пользовать конструкцию вида
SELECT Field FROM Table ... необходимо перекомпилировать как минимум ту делку в которой это забито. Что такое внести изменения даже в простую программу спустя полгода-год как работа над ней завершена? - иногда это проходит без проблем.
если же это выглядит так
SELECT Field FROM Query ... все переделка сводится к изменеию хранимого запроса, что занимает порядка 5 минут - из них 3 на закрытие-открытие базы.

8.4K
27 ноября 2004 года
cabich
11 / / 23.11.2004
Мне надо накодить прогу которая: в MySQL базы берёт значения из таблицы (телепрограмма) и на фоне картинки показывает их!Понятно ПОЛУЧАЕТСЯ типа слад_шоу с текстом из базы поверх.ВОТ!!
1
27 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by cabich
Мне надо накодить прогу которая: в MySQL базы берёт значения из таблицы (телепрограмма) и на фоне картинки показывает их!Понятно ПОЛУЧАЕТСЯ типа слад_шоу с текстом из базы поверх.ВОТ!!


Делается без проблем - используешь компонент для работы, например из палитры dbExpress - получаешь в него данные - а дальше - дальше все очень просто организововашь цикл -

 
Код:
while(!tvoiComp->Eof)

- и считывашь данные. Можешь использовать их прямо на канву -
 
Код:
Form1->Canvas->TextOut(i,10,tvoiComp->FieldbyName("ПолевТаблице")->AsString)

Можно загонять туда куда тебе нужно. Естественно, перед этим на канве нужно разместить твое изображение и отслеживать координаты формы.
Кстати, орать в теме не обязательно и даже не нужно. Использование CAPSLOCK не есть признак крутого "кодера" :)
8.4K
27 ноября 2004 года
cabich
11 / / 23.11.2004
Цитата:
Originally posted by kot_

Делается без проблем - используешь компонент для работы, например из палитры dbExpress - получаешь в него данные - а дальше - дальше все очень просто организововашь цикл -
 
Код:
while(!tvoiComp->Eof)

- и считывашь данные. Можешь использовать их прямо на канву -
 
Код:
Form1->Canvas->TextOut(i,10,tvoiComp->FieldbyName("ПолевТаблице")->AsString)

Можно загонять туда куда тебе нужно. Естественно, перед этим на канве нужно разместить твое изображение и отслеживать координаты формы.
Кстати, орать в теме не обязательно и даже не нужно. Использование CAPSLOCK не есть признак крутого "кодера" :)



Дело в том что dbExpress не видит libmysql.dll (куда я его только не пихал) да и сам процесс добывания значений из полей таблицы весьма для меня смутен,не могу с ADO разобраться в DBGrid Названия полей появились на значения не могу добыть

317
29 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by cabich


не могу с ADO разобраться в DBGrid Названия полей появились на значения не могу добыть



если названия полей есть - значит таблица подключилась нормально, а если значений нет, то два варианта - либо таблица пустая, либо не открыта - надо открыть

317
29 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by kot_

Ну например? На этапе разработки использовался столбец "Field", спустя полгода-год ввели новый столбец - старый переименовали, по целому ряду причин. :) Если это рабочая база - можно привести 1001 причина по которой эта операция нужна - и никого не волнуют проблемы программиста.
Если пользовать конструкцию вида
SELECT Field FROM Table ... необходимо перекомпилировать как минимум ту делку в которой это забито. Что такое внести изменения даже в простую программу спустя полгода-год как работа над ней завершена? - иногда это проходит без проблем.
если же это выглядит так
SELECT Field FROM Query ... все переделка сводится к изменеию хранимого запроса, что занимает порядка 5 минут - из них 3 на закрытие-открытие базы.



все теперь понял... :) с утра :) - мне проще все-таки модуль перекомпилить а похожей ситуации - может потому что не пишу пока больших сложных проектов...

1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Relax


все теперь понял... :) с утра :) - мне проще все-таки модуль перекомпилить а похожей ситуации - может потому что не пишу пока больших сложных проектов...


Ну это хорошо если это будет твой модуль...:) И вообще будет замечательно если в него изменеий не вносилось, а если вносилось то документировалось...:)

10
29 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Relax
мне проще все-таки модуль перекомпилить а похожей ситуации - может потому что не пишу пока больших сложных проектов...


Дело порой не столько в сложности проектов, сколько в капризности заказчиков.

Сам посуди - если что-то придется менять прямо на месте, то изменить хранимую процедуру на сервере можно при помощи штатных средств администрирования сервера, а вот для перекомпиляции программы придется ставить у клиента всю среду разработки. Некоторые горе-программисты так и делают...

Решать же подобные проблемы надо еще на уровне проектирования, чтобы потом не пришлось локти кусать.

317
29 ноября 2004 года
Relax
573 / / 20.09.2000
понял... отстал :)
токо что-то от темы мы немного отвлеклись...
10
29 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Relax
токо что-то от темы мы немного отвлеклись...


Ничего. Для души иногда и пофлудить можно. Задолбали вопросы, набранные заглавными буквами и невероянтным количеством вопросительных и восклицательных знаков.

1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by cabich


Дело в том что dbExpress не видит libmysql.dll (куда я его только не пихал) да и сам процесс добывания значений из полей таблицы весьма для меня смутен,не могу с ADO разобраться в DBGrid Названия полей появились на значения не могу добыть


Не совсем понятно, куда ты его пихал, мне приходилось решать задачи работы с Мусклом - работал стандартными компонентами, теме же експрессами - ни каких проблем. Может просто ты мало работал с базами и в связи с этим проблемы возникают? Если это АДО компоненты - приведи код который у тебя не работает - мне кажется проблемы в этом. Если у тебя есть DBGrid - должно быть как минимум еще два компонента -датасоурс и непосредственно компонент работающий с базой - например ADOQuery. Или ADOTable, если так уж хочется.

317
29 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by smartsoft

Ничего. Для души иногда и пофлудить можно. Задолбали вопросы, набранные заглавными буквами и невероянтным количеством вопросительных и восклицательных знаков.


учатся люди... нервничают... а зачем? на просто спокойно почитать маны... и пробовать, пробовать, пробовать... рано или поздно получится как надо!

8.4K
29 ноября 2004 года
cabich
11 / / 23.11.2004
Цитата:
Originally posted by Relax


если названия полей есть - значит таблица подключилась нормально, а если значений нет, то два варианта - либо таблица пустая, либо не открыта - надо открыть


Таблица не пустая. а как открыть? и вообще как и куда SQL каманды писать? и куда я от них ответ получу?

1
29 ноября 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by cabich

Таблица не пустая. а как открыть? и вообще как и куда SQL каманды писать? и куда я от них ответ получу?


Слушай - есть тема такая - мануалы и хелпы читать... Я понимаю, хелп читают ламеры, "кодерам" -это некогда :) Но стоит все же с этого начинать. Есть Архангельский - для особо продвинутых - там подробнейшим образом разобраны все вопросы для начинающих - куда пИсать, и куда...получать. Если надо - есть на форуме ссылки - где взять.
Открыть очень просто - ADOTable1->Active = true; - и будет тебе счастье.:) Выгружается вся эта прелесть - если работаешь с компонентом типа DBGrid - в компонент типа TDataSource. SQL-команды пишутся в свойство SQL, которое есть у тех компонентов, которые с SQL-запросами работают. Т.е. выглядит это так - для компонента ADOQuery -

 
Код:
ADOQuery->SQL->Clear();
AnsiString SQL = "SELECT * FROM Table WHERE PARAM1="+IntToStr(Param1)+"AND PARAM2="+IntToStr(Param2);
ADOQuery->SQL->Add(SQL);
ADOQuery->Active = true;

Но вообще, более эффективно работать через параметры. Помимо того, стороку запроса можно формировать в процессе разработки. Кроме того для АДО есть компонент TADOStoredProcedure - он позволяет работать с хранимыми запросами. Ну а в принципе пренебрегать клавишей F1 не стоит.
317
30 ноября 2004 года
Relax
573 / / 20.09.2000
я в жизни по Билдеру ни одной книги не прочел - только по С++, потому что смысла не вижу, вот хелп - это да! - все что нужно - просто и понятно... хоть он и английский - это даже хорошо - тоже развитие... так сказать - совмещай полезное с полезным! :D
8.4K
30 ноября 2004 года
cabich
11 / / 23.11.2004
Я сразу написал чоб поподробнее или ссылку.В помоще я непонял поэтому и спросил.Я очень признателен за ответы и примеры.
Спасибо
317
30 ноября 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by cabich
Я сразу написал чоб поподробнее или ссылку.В помоще я непонял поэтому и спросил.Я очень признателен за ответы и примеры.
Спасибо



получилось?

8.4K
03 декабря 2004 года
cabich
11 / / 23.11.2004
Цитата:
Originally posted by Relax


получилось?


Да получилость Но я кроме как в DBgrid значение полей вывести не могу.хотелось бы узнать как в чёнить другое вывести

1
04 декабря 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by cabich

Да получилость Но я кроме как в DBgrid значение полей вывести не могу.хотелось бы узнать как в чёнить другое вывести


Вот пример вывода в ListVeiw. Предполагается что данные ты уже получил. Допустим его свойства - стиль репорт, три столбца, первый - номер по порядку, второй название, третий - количество. Помимо этого, предположим необходимо хранить код, но пользователю его не отображать. Нафиг он ему нужен...:)

 
Код:
TListItem *LI;
int i=1;
while(!ADOQuery1->Eof){
LI = ListView1->Items->Add();
LI->Caption = IntToStr(i++);
LI->SubItems->AddObject(ADOQuery1->FieldByName("NAME")->AsString,(TObject*)new AnsiString(ADOQuery1->FieldByName("CODE")->AsString));
LI->SubItems->Add(ADOQuery1->FieldByName("MASS")->AsString);
ADOQuery1->Next();
}

Обработка двойного клика на ListView -
 
Код:
TListItem *LI = ListView->Selected;
Edit1->Text = *((AnsiString*)(LI->SubItems->Object[0]));
Edit2->Text = LI->SubItems->Strings[0];
Edit3->Text = LI->SubItems->Strings[1];

С другими точно также.
317
06 декабря 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by kot_

Вот пример вывода в ListVeiw. Предполагается что данные ты уже получил. Допустим его свойства - стиль репорт, три столбца, первый - номер по порядку, второй название, третий - количество. Помимо этого, предположим необходимо хранить код, но пользователю его не отображать. Нафиг он ему нужен...:)
 
Код:
TListItem *LI;
int i=1;
while(!ADOQuery1->Eof){
LI = ListView1->Items->Add();
LI->Caption = IntToStr(i++);
LI->SubItems->AddObject(ADOQuery1->FieldByName("NAME")->AsString,(TObject*)new AnsiString(ADOQuery1->FieldByName("CODE")->AsString));
LI->SubItems->Add(ADOQuery1->FieldByName("MASS")->AsString);
ADOQuery1->Next();
}

Обработка двойного клика на ListView -
 
Код:
TListItem *LI = ListView->Selected;
Edit1->Text = *((AnsiString*)(LI->SubItems->Object[0]));
Edit2->Text = LI->SubItems->Strings[0];
Edit3->Text = LI->SubItems->Strings[1];

С другими точно также.



перед while надо бы сделать ADOQuery1->First(); на всякий случай...

1
06 декабря 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Relax


перед while надо бы сделать ADOQuery1->First(); на всякий случай...


Ну точнее нужно проверить if(ADOQuery1->Bof).

317
06 декабря 2004 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by kot_

Ну точнее нужно проверить if(ADOQuery1->Bof).


ну можно и так, хотя на мой взгляд это лишнее

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