Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BCB6+ADO 
:(
    Опции темы
Palladin
Дата 4.6.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



                                                                            
BCB6+ADO


 Раз Вы читаете эту статью значит Вам нужно написать лабораторную(практическую\курсовую\несложный проект), работа связана с  С++ Builder6+базы данных.
   В данной статье будет разобрана поверхностная работа с такими компонентами как:
      ADOTable, ADOConnection,DataSource,DBEdit,DBComboBox,DBGrid,QReport
   После прочтения и некоторых усилий Вы будите уметь: 
Соединятся с Вашей БД, добавлять, удалять, редактировать записи, выводить на печать содержимое таблицы БД и немного другого 

                                                       
Часть №1 Перед началом


Перед началом непосредственной работы Вам нужно:
  1)Понять задание, т.е. понять, что от Вас хотят или, что Вы сами от себя хотите
  2)Разработать БД, забив её одной или несколькими таблицами(т.к. подразумевается, что Ваша задача не  имеет высокой сложности, то в виде БД выбрать, базу данных разработанной в Access)
  3)Подготовить рабочие место(т.е. затариться сигаретами,пивом,чаем,едой, вообщем всем тем что нужно Вам для работы, ну и конечно установить на своей машине Borland C++ Builder 6)
  4)Понять для себя, нужно ли Вам это!? Если да, приступаем…

                                                            
Часть №2 Начало


Допустим задача Ваша такова:
  Разработать приложение, работающее с БД на Access, осуществить добавление, удаление, редактирование,   вывод на печать, поиск по определенным полям, взаимодействие между таблицами
  Открываем Access, создаем в режиме конструктора 2 таблицы:  table_lift и table_mechaniki
------------------------------------------------
table_lift с такими полями:
inv_n  - текстовый
reg_n  - текстовый
kto_obslujivaet - текстовый
adres –текстовый
------------------------------------------------
table_mechaniki с такими полями:
fio –текстовый
razryad – целочисленный
tabl_n – целочисленный
staj – целочисленный
------------------------------------------------

  Сохраняем нашу базу данных с именем «base_for_junior.mdb»
Будем считать, что с созданием таблиц Вашей БД Вы справились
БД с нашими таблицами кидаем в папку с нашей будущей программой

                                                  
Часть №3 Устанавливаем соединение


Создаем новый проект в BCB(здесь и далее Borland C++ Builder)
В св-ве Caption Form1 пишем «Главное меню», на форму 3 Button,
В св-ве Caption Button1 пишем «Справочник лифты»
В св-ве Caption Button2 пишем «Справочник механики»
В св-ве Caption Button3 пишем «Выход»
Сразу же открываем обработчик кода Button3 (кликаем по кнопке два раза) и пишем такой код:
Код

Form1->Close();
В обработчике Button2 пишем код:
Код

Form1->Hide();
Form5->Show();
В обработчике Button1 пишем код:
Код

Form1->Hide();
Form2->Show();
Создаем новую форму
Подключаем к первой форме 2 , т.е. в коде первой формы вверху пишем:
Код

#include<Unit2.h>
Анологичным способом ко второй форме подключаем первую, пишем в коде второй формы
Код

#include<Unit1.h>


В св-ве Caption Form2 пишем «Справочник механики»
На форму кидаем:
ADOConnection,ADOTable,DataSource,DBGrid, 4 Button, EditВ св-ве Caption Button1 пишем «Назад» и в обработчике этой кнопки пишем код:
Код

Form2->Close();
Form1->Show();
В св-ве Caption Button2 пишем «Добавить»
В св-ве Caption Button3 пишем «Редактировать»
В св-ве Caption Button4 пишем «Удалить»
    Кликаем по ADOConnection, в инспекторе объектов ищем  св-во  LoginPromt, устанавливаем его значение в False(можно и не устанавливать, но если значение равно true, при каждом коннекте к таблице программа будет просить у пользователя ввести логин и пароль) Далее смотрим св-во ConnectionString, кликаем по нему два раза. Появляется форма установления соединения с нашей БД, справа от строки «USE Connection String» жмем на кнопку «Build», появляется список драйверов, т.к. наша программа использует БД написанной в Access, выбираем Microsoft Jet 4.0 OLE DB Provider. Жмем далее, т.к наша БД находится в папке с программой, в поле «Выберите или введите имя вашей базы данных»  пишем «base_for_junior.mdb»(без ковычек). Далее жмем «ОК» и еще раз «ОК». Устанавливаем в св-ве Connected значение true. Соединение установлено и мы переходим к следующей части…

                                        
Часть №4 Работа с ADOTable, DataSource, DBGrid


  Кликаем по компоненту ADOTable, в инспекторе объектов ищем Connection, в выпадающем списке выбираем ADOConnection1. Далее ищем TableName, кликаем, и в выпадающем списке выбираем нашу таблицу с механиками, а именно «table_mechaniki». В завершении Active выставляем в True. Если никаких ошибок нет, то все должно пройти нормально, в противном случае вернитесь к Части №3 и повторите все сначала!
  Кликаем по компоненту DataSource, в инспекторе объектов в св-ве DataSet выбираем ADOTable1.
  Кликаем по нашему DBGrid-у, в инспекторе объектов в св-ве DataSource выбираем DataSource1.
  Если все сделали правильно, то после этих действий в DBGrid появится наша таблица механиков. 
  Имена полей в DBGrid-e сооветствую именам полей в нашей таблице, но это не очень-то «красиво», не беда ADOTable поможет нам в этом. Перед тем как приступим к этому, в инспекторе объектов  DBGrid-а, найдите поле «option» слева от него будет «+», кликаем по нему, должен развернутся список с опциями DBGrid-a, которые присваиваются ему по умолчанию. Найдите св-во dgEditing и установите его в false. Благодаря этому, вы не сможете непосредственно в DBGrid-e изменять свои записи. Возвращаемся к ADOTable, кликаем по ADOTable мышкой два раза, появится пустое окошко, в нем кликаем правой кнопкой мыши и в выпадающем списке выбираем Add all fields. Появятся все поля таблицы механиков. Кликаем по любому полю, теперь в инспекторе объектов можно скрыть поле от пользователя, сделать его больше\меньше, изменить имя поля(имя на самом деле не изменится, просто в программе будет показано другое) и много другое!
Кликаем по полю fio, в инспекторе объектов в DisplayLabel пишем «ФИО» или «Фамилия имя отчество» или «Автор нуб похлеще меня» что хотите, главное чтоб пользователю было понятно что за поле! Именно то что вы напишите здесь будет показано в DBGrid-e в имени поля
   Далее в DisplayWidth устанавливаем число, оно отвечает за кол-во символов показываемых пользователю, для поля ФИО больше 35 не нужно. Аналогичным образом настраиваем другие поля нашей таблицы.


Часть №5 Удаление, Добавление, Редактирование

  На нашей форме кликаем два раза по кнопке «Удалить», пишем код:
Код

if(ADOTable1->IsEmpty()==true)//если записей нет то будет true
ShowMessage("Нечего удалять"); //уведомление пользователю
else {
ADOTable1->Delete(); 
ShowMessage("Запись удалена");
} //удаляем с последующем уведомлением

   Вот и все удаление записей есть, приступаем к добавлению
Создаем новую форму, подключаем к ней форму с механиками.
Форму с механиками, подключаем к форме с добавлением
На кнопку добавить пишем код:
Код

ADOTable1->Append(); //добавляет пустую запись в конец таблицы
DBGrid1->SetFocus(); //устанавливает фокус на DBGrid-e
Form3->ShowModal(); //показывает форму добавления

Кидаем на форму добавления 4 DBEdit-a, 2 Button
Переименовываем форму, ну скажем «Добавление механика»
Кнопки переименовываем, как вы уже, наверное догадались в «Отмена» и «Принять»
Выбираем DBEdit1, в инспекторе объектов в св-ве DataSource выбираем Form2->DataSource1
Теперь в св-ве DataField выбираем поле fio, и так для каждого поля в нашей таблице механиков
Т.е. в следующий DBEdit проставьте в поле DataField поле razryad и т.д.
Сделайте подписи рядом с DBEdit-ами для ясности. На кнопку «Отмена» пишем такой код
Код

Form2->ADOTable1->Delete(); 
Form3->Close();

На кнопку «Принять»:
Код

if(Form2->ADOTable1->Modified==true)
  Form2->ADOTable1->Post();
Переходим к редактированию
Создаем новую форму, подключаем её к нашей форме механиков, ну и как раньше форму с механиками к новой. Делаем все тоже что и с формой добавление, различие будет в коде!
На кнопку редактировать формы механиков пишем код:
Код

if(ADOTable1->IsEmpty()==true)
ShowMessage("Нечего редактировать");
else{ Form4->ShowModal();}

Определяем  4 глобальные текстовые переменные в форме редактирования, к примеру 
Код

String s1,s2,s3,s4; //нужно будет для отмены

На onActive формы редактирования (кликаем по форме, в инспекторе объектов кликаем по вкладке Events там ищем OnActive и два раза кликаем, и пишем код)  
Код

S1=DBEdit1->Text;
S2=DBEdit2->Text;
S3=DBEdit3->Text;
S4=DBEdit4->Text;

На кнопку «Принять»: 
Код

if(Form2->ADOTable1->Modified==true)
  Form2->ADOTable1->Post();

На кнопку «Отмена»:
Код

DBEdit1->Text=s1;
DBEdit2->Text=s2;
DBEdit3->Text=s3;
DBEdit4->Text=s4;
if(Form2->ADOTable1->Modified==true)
  Form2->ADOTable1->Post();
Form4->Close();

 Все таблица Механиков подключена к нашей программе, в неё можно добавлять записи, редактировать их и конечно удалять! Компилируем, тестим. Подумали все!? Нет, нам еще осталось сделать нашу форму лифтов, и мы еще не делали поиск, печать и не работали с DBComboBox, переходим к след части

Часть №6 Повторяем пройденное


  Чтобы запомнить и понять что-то нужно самому это сделать, поэтому создайте новую форму подключите её к первой, сделайте так, чтобы нажав по кнопке «Справочник лифтов» появлялась Ваша новая форма, подключите таблицу лифтов таким же образом, как и в части 3 мы подключали таблицу с механиками, киньте на форму 5 кнопок «Назад», «Удалить», «Редактировать», «Добавить», «Печать», киньте также 1 Edit для поиска, создайте 2 пустые формы для добавления и редактирования, и подключите их к форме с лифтами, а форму с лифтами к ним

Часть №7 DBComboBox

  Надеюсь Вы справились с частью 6, и мы приступаем
  На кнопку «Удалить» формы «Справочник лифтов» пишем код:
Код

if(ADOTable1->IsEmpty()==true) //тут ADOTable1 формы с лифтами
  ShowMessage("Нечего удалять"); 
else {
  ADOTable1->Delete(); 
  ShowMessage("Запись удалена");} 

У нашей таблицы с лифтами есть поле «kto_obslujivaet», как Вы уже наверное догадались в это поле ничего пользователь вводить не должен, здесь должны отображаться уже добавленные механики, для того чтобы это сделать будем использовать компонент DBComboBox! Пользователю нужно будет лишь выбрать из выпадающего списка нужного механика
На форму добавления кидаем 3 DBEdit-a, DBComboBox ну и как обычно две кнопки «Принять», «Отмена»
Подключаем DBEdit-ы так же как и в добавлении механиков! Указываем соотносим им поля inv_n  , reg_n, adres. DBComboBox-у указываем аналогичным способом поле kto_obslujivaet.
На кнопку принять и отмена пишем тот же код что и при добавлении механиков!
На onActive формы добавления лифтов пишем такой код:
Код

Form6->DBComboBox1->Clear(); //очищаем комбобокс
Form2->ADOTable1->First(); //переходим на первую запись в таблице механиков
for(int i=1;i<=Form2->ADOTable1->RecordCount;i++)  //цикл по всем записям в таблице механиков
 {
   Form6->DBComboBox1->Items->Insert(i-1,Form3->DBEdit1->Text); //забиваем комбобокс механиком
   Form2->ADOTable1->Next(); //переходим на след запись в таблице механиков
 }

Откомпилируйте и проверьте все ли так как надо!? 
Редактирование попытайтесь сделать сами, так вы быстрее освоите и закрепите эти действия
P.S. Мне не лень все это написать, я просто сам когда-то это учил и помню что пока сам все не сделал ничего не помнил, такчто дерзайте!

Часть №8 Поиск

  Программа, которая работает с БД должна иметь поиск, для более быстрого нахождения нужной пользователю информации
Возвращаемся назад к форме с таблицей лифтов
Помните кинули Edit для поиска на форму, вот теперь им займемся!
Поиск сделаем по полю «kto_obslujivaet»
На onChange нашего Edit-a пишем такой код:
Код

if(Edit1->Text.Length()>0) //ввели ли хоть чтонибудь
  ADOTable1->Filtered=true; 
else
  ADOTable1->Filtered=false;
  ADOTable1->Filter=" kto_obslujivaet >='"+Edit1->Text+"'"; //будет оставлять те записи которые либо 
//равны введенному либо «большие»

На OnFilterRecord компонента ADOTable формы с лифтами пишем код:
Код

Accept=false;
if(ADOTable1DSDesigner3->AsString.SubString(1,Edit1->Text.Length())==Edit1->Text)
Accept=true;

   DSDesigner3 это так сказать имя вашего поля в ADOTable, чтобы посмотреть его кликните по ADOTable мышкой два раза, кликните по нужному вам полю в появившемся окне, слева в инспекторе объектов можно посмотреть. Кликните по полю «kto_obslujivaet». В инспекторе объектов будет что-то типа ADOTable1DSDesigner3 если нет, значит Вы делали несовсем то что здесь написано, но не беда! Посмотрите сами номер и измените код!
Компилируем, смотрим! При вводе информации в Edit остаются только те записи которые удовлетворяют условию
Переходим к печати…

Часть №9 Печать

Предположим, что Вам нужно распечатать таблицу с лифтами. Создаем новую форму, подключаем её к форме с лифтами. На новую форму с вкладки QReport палитры компонентов BCB кидаем компонент QuickRep
Кликаем по QuickRep и в инспекторе объектов в св-ве Bands выставляем true напротив HasDetail и HasCollumnHeader
Второй как ясно по названию будет служить заголовком, первый для вывода информации на печать
На HasCollumnHeader кидаем 4 QRLabel, задаем каждому из них имя одного из нашего поля(кликаем по QRLabel в инспекторе объектов ищем св-во Caption и в нем пишем), имена задайте так
QRLabel1 переименуйте в Инв. №  и т.д.            
QRLabel2 =Рег. №               
QRLabel3=Кто обуслуживает     
QRLabel4=Адрес

В HasDetail киньте 4 QRDBText, установите точно также как и для DBEdit-ов связь к полям таблицы лифтов.
На кнопку Печать(которая должна находиться на форме с таблицей лифтов) напишите код:
Код

Form8->QuickRep1->PreviewModal;

  Вот и все печать готова. Компилируем, проверяем, по нажатии кнопки появится окно предварительного просмотра с возможностью печати


Часть №10 Заключение

В этой статье я попытался ответить на все те вопросы которые интересовали меня, когда я получил первое задание с БД, Программу можно усложнить, сделав защиту от «дураков», правильно расположим компоненты на формах(но думаю Вы это и так сделали), усложнить поиск, сделать более сложные отчеты и т.д. Удачи!
От автора
Первая моя статья, уверен, что убогая, но даже если я ответил, хотябы на 1 вопрос кого либо, в этой статье, я доволен! Если норм выложите в Faq, если нет удалите smile 

В написании помог:
Конечно же форум Vingrad, личный опыт

За нахождение не точностей в статье спс Хрусту smile 


Это сообщение отредактировал(а) Palladin - 26.6.2008, 10:36


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
osmus
Дата 24.6.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Кул хоть комуто пригодилось smile спс
P.S. может чего нехватает ты в личку отпиши я если дельное, то в статью добавлю...


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Annihilator
Дата 27.6.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



статья хорошая, но тут написано это для визуальных приложениях. Пишу об этом потому, как столкнулся с проблемой, которую конечно уже решил, писать пограмму по работе с access под консоль и там уже, естественно, так легко 
Цитата(Palladin @  4.6.2008,  18:26 Найти цитируемый пост)
На форму кидаем:ADOConnection,ADOTable,DataSource,DBGrid, 4 Button

не получится. надо все в рантайме поднимать. Так вот, я думаю, быть может, стоит дополнить эту статью такой информацией?


Это сообщение отредактировал(а) Annihilator - 27.6.2008, 22:01


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Palladin
Дата 27.6.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Хм... Нада подумать. Лично я, писал с десяток программ связаных с БД, однако ниодно не требовала консоль...
Думаю не зачем, цель подобных статей ответить на частозадаваемые вопросы, ты же как я понял хочешь, то, чем уже лет 10 никто не пользуется(в основном конечно).Как я понял ты хочешь из консоли добавлять, удалять, редактировать, искать и т.д.я даже незнаю реально ли это. Ибо вроде как Access появился с Windows, а в этой ОС использовалась и используется Win32(уже и 64) приложения, не думаю что С++ обладает такими возможностями(стандартными я имею ввиду), для твоей задачи необходима другая БД...
P.S. С таким не сталкивался и даже не думал что такое может понадобится, поправьте если я сморозил выше... 
быть может я не так понял твою просьбу?


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Annihilator
Дата 27.6.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



Palladin, с этой задачей я столкнулся буквально месяц назад, так требовал мой заказчик, ему это нужно было чтобы автоматизировать процесс добавления записей в аксесс, т.е. есть параметры, файл данных-откуда берется все, и файл БД, куда все записывается. так вот мой поиск по различным форумам показал, что задача актуальна не только для меня и посты там были не 10-летней давности, поэтому такая у меня идея возниклаsmile, да и консоль всяко быстрее гуи работает. а вдруг тебе надо добавить несколько тысяч записей, в которой полей порядка сотни в каждой, так вот на моей тачкеи core2duo e4700 (не самая слабая smile) разницу в скорости выполнения я заметил, пусть и не большую, а теперь если предстваить что такая работа непрерывна (как у моего заказчика), то выигрыш налицо. поправь елси что не такsmile


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Palladin
Дата 27.6.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Чем мне нравится этот форум, дак тем что каждый день понимаешь какое ты мясо и сколько еще надо выучить чтоб перестать им бытьsmile))
Серъезно даже не слышал о подобных, но доводы актуальны, сам добавить в ближайшее время несмогу, ибо придется столкнутся с тем что пришлось пройти тебеsmile Тут скорее написать её тебе нада, за что тебе будет ни один "+" smile Да и таких как я поучишь, или вышли хотяб свою программу для изучения, ибо писать статью не имея опыта в работе и написании подобных программ это скорее не помогать форумчанам, а оказывать им медвежью услугу 
P.S. Твое предложение хорошо, однако для данной статьи не катит ибо статья BCB+ADO про это и рассказывается, в твоем случае требуется уже новую, и назвать какнить БД+Console C++

Это сообщение отредактировал(а) Palladin - 27.6.2008, 22:42


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
dumb
Дата 27.6.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Цитата(Annihilator @  27.6.2008,  23:25 Найти цитируемый пост)
поправь елси что не так
поправляю: при корректной реализации скорость работы с БД никак не должна зависеть от гуевости программы.
PM MAIL   Вверх
Palladin
Дата 28.6.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Цитата(dumb @  27.6.2008,  23:29 Найти цитируемый пост)
поправляю: при корректной реализации скорость работы с БД никак не должна зависеть от гуевости программы.

Однако не соглашусь... Вообщем понятии ты прав, но вот пример:
К примеру у нас есть 100 единиц ресурса, на каждую операцию работающую с БД необходима 1 ед. ресурса, тогда на 100 ед ресурса мы сможем выполнить 100 операций в единицу времени, делаем погрешность на консоль и т.д. и мы можем уже сделать гденить 92 операции, в случае же с win32 приложением, наверняка только на него необходимо большее кол-во ресурса, а значит при win32 уже не 92, а гденить 80 операций в единицу времени...
P.S. Полностью согласен с дамбом, в общем понятии конечно, однако в случае когда надо позаботится о скорости и каждая сотоя доля секунды дорога консоль лучше(не говорите что мол при таком раскладе пиши на asm, эт я вкурсе) smile 



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Bugmaker
Дата 2.7.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Статья очень помогла!
PM MAIL   Вверх
Palladin
Дата 2.7.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



3 человека сказало что им помогла "статейка", все пойду гулять завтра smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
XPyCT
  Дата 6.7.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Помогло! еще как спс тебе!
PM MAIL Skype   Вверх
ands80
Дата 6.8.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо автору за стаью!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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