• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

C++ && Mysql

  • Автор темы Yaponchick
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Y

Yaponchick

Помогите пожайлуста, хочу познать С++, вот решил с чего-то приближенного.
Как можно организовать связь BCB6 & MySQL без использования ODBC.
Будьте добры, с примерами пожайлуста.
 
S

sdriver

Попробуй:
 
Y

Yaponchick

Для: sdriver
Подключил, а дальше как ?! =)
 
S

sdriver

Зайди на страницу автора -- там все есть с примерами только на VB :

Помощь по основным методам и свойствам контрола


Методы

AddColumn(column As Integer, mask As Integer, fmt As Integer, Width As Integer, name As String, name_max As Integer, iImage As Integer, iOrder As Integer) As Integer
Добавляет столбец. Свойство OwnerData=False.
column - номер столбца
Width - ширина
name - заголовок столбца
name_max - количество символов заголовка, если указать 0 то будет 255
остальные параметры равны 0
или смотри в MSDN "List-View Control Reference"

AddRow(row As Long, text0column As String, mask As Integer, state As Integer, stateMask As Integer, cchTextMax As Integer, iImage As Integer, iIndent As Integer, iGroupId As Integer, cColumns As Integer, puColumns As Integer) As Integer
Добавляет строку. Свойство OwnerData=False.
row - номер строки
text0column - текст столбца 0, может быть пустая строка.
cchTextMax - количество символов текста, если указать 0 то будет 255
остальные параметры равны 0
или смотри в MSDN "List-View Control Reference"

ChangeUser(User As String, Password As String, DataBase As String) As Boolean
Смена пользователя.
User - логин
Password - пароль
DataBase - название базы
Более полное описание смотри в документации MySQL C API функция mysql_change_user

ClearIntegralRecordSet()
Освобождает память после использования IntegralCursor. Свойство OwnerData=True.

Close() As Boolean
Закрывает активное соединение, если был выполнен метод Open.

DeleteAllColumns() As Integer
Удаляет все столбцы. Свойство OwnerData=False.

DeleteAllRows() As Boolean
Удаляет все строки. Свойство OwnerData=False.

DeleteColumn(iCol As Integer) As Boolean
Удаляет указанный столбец. Свойство OwnerData=False.
iCol - номер удаляемого столбца

DeleteRow(iRow As Integer) As Boolean
Удаляет указанную строку. Свойство OwnerData=False.
iRow - номер удаляемой строки

Drag([Action])

Execute(SQLCommand As String) As Long
Выполняет SQL команду. Если возвращаемое значение отлично от 0, то это код ошибки. Коды ошибок смотри в документации MySQL.
SQLCommand - текст SQL команды

FindStrItem(iStart As Long, StrItem As String) As Long
Поиск текста по первому столбцу. Возвращает номер найденной строки. Свойство OwnerData=False.
iStart - начальная строка для поиска
StrItem - текст для поиска

GetCellTextSQL(row As Long, column As Long) As String
Возвращает текст из указанной ячейки. Свойство OwnerData=True.
row - строка
column - столбец

GetCountPerPage() As Integer
Возвращает количество видимых строк.

GetHotItem() As Long
Возвращает номер подсвеченной строки.

GetItemCount() As Long
Возвращает общее количество строк.

GetItemText(iItem As Long, iSubItem As Integer, cchTextMax As Integer) As String
Возвращает текст из указанной ячейки. Свойство OwnerData=False.
iItem - строка
iSubItem - столбец
cchTextMax - максимальное количество символов, если указать 0 то будет 255

GetSelectedCount() As Integer
Возвращает количество выделенных строк.

GetSelectionMark() As Long
Возвращает номер выделенной строки.

IntegralCursor(QueryString As String, NameFields As String) As Boolean
Отображает результат запроса на экране. Выделяет память для содержимого результата. Свойство OwnerData=False.
QueryString - строка запроса
NameFields - строка с названиями столбцов разделенных "|"(например "Код|Имя|Свойство"), если пустая - названия берутся из запроса

ListTables(DataBase As String) As String
Возвращает строку содержащую список названий таблиц в указанной базе. Символ разделитель "|".
DataBase - название базы

Move(Left As Single, [Top], [Width], [Height])
Двигает контрол по форме.

MyInfo() As String
Возвращает некоторую информацию из MySQL. Устанавливает для запроса информации свое соединение(после получения информации закрывает соединение). Должны быть указаны свойства: Host, User, Password, Port. Иначе пытается установить соединение с параметрами по-умолчанию.

MysqlCreateDb(DataBase As String, ShowErrorMessage As Boolean) As Integer
Создает базу данных.
DataBase - название базы
ShowErrorMessage - отображать или нет сообщение об ошибке

MysqlDropDb(DataBase As String, ShowErrorMessage As Boolean) As Integer
Удаляет базу данных.
DataBase - название базы
ShowErrorMessage - отображать или нет сообщение об ошибке

MysqlReload(ShowErrorMessage As Boolean) As Integer
Перегружает системные таблицы MySQL. Подробнее смотри документацию MySQL C API функция mysql_reload.
ShowErrorMessage - отображать или нет сообщение об ошибке

MysqlSelectDb(DataBase As String, ShowErrorMessage As Boolean) As Integer
Устанавливает текущей базу данных.
DataBase - название базы
ShowErrorMessage - отображать или нет сообщение об ошибке

MysqlStatus(PtrMYSQL As Long) As String
Возвращает состояние соединения. Подробнее смотри документацию MySQL C API функция mysql_stat.
PtrMYSQL - указатель на соединение, по-умолчанию равен 0

NamesFields(NameTable As String) As String
Возвращает строку с названиями полей указанной таблицы разделенных "|".
NameTable - название таблицы

Open() As Boolean
Устанавливает соединение с сервером MySQL. Должны быть указаны свойства: Host, User, Password, Port (можно указать DataBase). Иначе пытается установить соединение с параметрами по-умолчанию.

QueryInString(QueryString As String) As String
Возвращает строку с результатом запроса. Значения полей разделены символом "|". В запросе должно быть указано уникальное значение поля, чтобы результат содержал одну строку.
QueryString - строка запроса

RedrawItems(iFirst As Integer, iLast As Integer) As Boolean
Перерисовывает строки. Подробнее смотри в MSDN "List-View Control Reference" макрос ListView_RedrawItems.
iFirst - начальная строка для перерисовки
iLast - конечная строка для перерисовки

RefreshCursor(QueryString As String) As Long
Обновляет результат запроса. Первый раз запрос должен быть выполнен ViewCursor. Свойство OwnerData=True.
QueryString - строка запроса

RefreshIntegralCursor(QueryString As String, NameFields As String, CreateColumns As Boolean) As Boolean
Обновляет результат запроса. Первый раз запрос должен быть выполнен IntegralCursor. Свойство OwnerData=False.
QueryString - строка запроса
NameFields - названия столбцов разделенные "|"
CreateColumns - создавать столбцы заново

RefreshQuery(QueryString As String) As Long
Обновляет результат запроса. Первый раз запрос должен быть выполнен ViewQuery. Свойство OwnerData=False.
QueryString - строка запроса

Scroll(horizontal As Integer, vertical As Integer) As Boolean

Search(FindStr As String, StartRow As Long, StopRow As Long, StartField As Long, StopField As Long, StepOnFind As Boolean) As Long
Поиск для ViewCursor. Возвращает номер строки с искомым текстом. Свойство OwnerData=True.
FindStr - строка для поиска
StartRow - начальная строка для поиска
StopRow - конечная строка для поиска
StartField - начальный столбец для поиска
StopField - конечный столбец для поиска
StepOnFind - переходить на найденную строку

SearchIntegralCursor(SearchString As String, StartRow As Long, StopRow As Long, StartField As Long, StopField As Long, StepOnFind As Boolean) As Long
Поиск для IntegralCursor. Возвращает номер строки с искомым текстом. Свойство OwnerData=False.
SearchString - строка для поиска
StartRow - начальная строка для поиска
StopRow - конечная строка для поиска
StartField - начальный столбец для поиска
StopField - конечный столбец для поиска
StepOnFind - переходить на найденную строку

SetActiveItem(iItem As Long) As Boolean
Выделяет указанную строку.
iItem - номер строки

SetAutoSizeColumn(column As Integer) As Boolean
Устанавливает ширину колонок по содержимому.
column - номер колонки, если -1 тогда все

SetBkColor(BackgroundColor As OLE_COLOR) As Boolean

SetColumn(iCol As Integer, Caption As String, Width As Integer, Align As Integer) As Boolean
Устанавливает название, ширину и размещение текста названия для указанного столбца
iCol - номер столбца
Caption - название
Width - ширина(-1 - ширина не меняется)
Align - разворот()

SetFocus()

SetHotItem(iItem As Integer) As Integer
Подсвечивает указанную строку.
iItem - номер строки

SetHoverTime(HoverTime As Integer) As Integer
Устанавливает время через которое будет выделена строка под курсором мыши.
HoverTime - время в миллисекундах

SetItemState(iItem As Integer, state As Integer, mask As Integer)
Устанавливает состояние строки.
iItem - строка
state - состояние(дополнительно смотри в MSDN макрос ListView_SetItemState)
mask - маска(дополнительно смотри в MSDN макрос ListView_SetItemState)

SetTextCell(column As Long, row As Long, Text As String, mask As Integer, state As Integer, stateMask As Integer, cchTextMax As Integer, iImage As Integer, iIndent As Integer, iGroupId As Integer, cColumns As Integer, puColumns As Integer) As Boolean
Установливает текст ячейки. Свойство OwnerData=False.
column - колонка
row - строка
Text - новый текст
остальные параметры 0 или смотри MSDN макрос ListView_SetItem(четыре последних не используются)

ShowWhatsThis()

ViewCursor(QueryString As String, CaptionFields As String) As Boolean
Отображает результат запроса. Свойство OwnerData=True.
QueryString - строка запроса
CaptionFields - строка названий колонок разделенных "|"

ViewQuery(QueryString As String, CaptionFields As String) As Long
Отображает результат запроса. Свойство OwnerData=False.
QueryString - строка запроса
CaptionFields - строка названий колонок разделенных "|"

ViewTable(DataBase As String, Table As String, ListFields As String, Sort As String) As Long
Отображает содержимое таблицы. Загрузка результата происходит в отдельном процессе, поэтому просмотр результата возможен до окончания загрузки. Свойство OwnerData=False.
DataBase - название базы
Table - название таблицы
ListFields - список полей
Sort - окончание запроса, может быть пустая строка, условие или сортировка

WmSetText(hWnd As OLE_HANDLE, Text As String) As Boolean
Устанавливает текст в окне с указанным handle.
hWnd - handle окна, подробнее смотри MSDN WM_SETTEXT

ZOrder([Position])


Свойства

AutoSize As Boolean
При установке в True размеры колонок соответсвуют содержимому.

CurrentColumn As Integer
Содержит номер текущей колонки.

CurrentPositionCursor As Long
Позиция курсора(последняя строка на экране). Свойство OwnerData=True.

DataBase As String
Название базы для соединения.

FindCountColumns As Integer

FindValueStr As String

Height As Single

HelpContextID As Long

Host As String
Название или IP компьютера с MySQL сервером для соединения.

hWnd As OLE_HANDLE

IsFindCurrentColumn As Boolean

LastInsertId As Long
Содержит последний уникальный номер послевыполнения команды "INSERT".

Left As Single

NoSortHeader As Boolean
Отключает событие щелчка на названиях колонок.

OwnerData As Boolean
Это свойство может быть выставлено только во время разработки.
True - работает в виртуальном режиме. False - в обычном. Подробнее смотри в MSDN.

Password As String
Пароль пользователя для соединения.

Pid As Long
Pid текущего соединения. Подробнее смотри документацию MySQL.
Port As Long
Порт для соединения.

ProgressShow As Boolean
Показывать или нет прогресс заполнения контрола.

PtrMYSQL As Long
Указатель на соединение MySQL. Если установить PtrMYSQL одного контрола другому, то нет необходимости для последнего выполнять методы Open и Close(все контролы должны иметь свойство OwnerData равным False).

Right As Long

ShowMes As Boolean
Выводить или нет сообщения об ошибках.

TabIndex As Integer

TabStop As Boolean

Tag As String

Text As String

ToolTipText As String

Top As Single

ToSearch As Boolean
Выполнять или нет поиск.

User As String
Логин пользователя для соединения.

Visible As Boolean

WhatsThisHelpID As Long

Width As Single


События

Click()
Щелчок левой кнопкой мыши.

ColumnClick(column As Integer)
Щелчок мыши на названии колонки.
column - номер колонки

CopyToClipboard(column As Long, row As Long, Text As String)
Щелчок мыши в контекстном меню на пункте Копировать.
column - текущая колонка
row - текущая строка
Text - текст в текущей ячейке

DblClick()
Двойной щелчок левой кнопкой мыши.

DragDrop(Source As Control, x As Single, y As Single)

DragOver(Source As Control, x As Single, y As Single, state As Integer)

FindNewValue(CurrentValueStr As String)
Щелчок мыши в контекстном меню на пункте Поиск->Новый элемент. Свойство OwnerData=True.
CurrentValueStr - текст текущей ячейки

FindValueCol(CurrentColumn As Integer, CurrentRow As Long, CellValueStr As String)
Щелчок мыши в контекстном меню на пункте Поиск->По значению столбца. Свойство OwnerData=True.
CurrentColumn - текущая колонка
CurrentRow - текущая строка
CellValueStr - текст текущей ячейки

GotFocus()

ItemActivate(HwndFrom As OLE_HANDLE, IdFrom As Long, Code As Long, iItem As Long, iSubItem As Integer, uNewState As Long, uOldState As Long, uChanged As Long, x As Long, y As Long, lParam As Long, uKeyFlags As Long)

KeyDown(KeyCode As Integer, Shift As Integer)

KeyPress(KeyAscii As Integer)

KeyUp(KeyCode As Integer, Shift As Integer)

LostFocus()

MnuDinamicEdit(CurrentColumn As Long, CurremtRow As Long, Text As String)
Щелчок мыши в контекстном меню на пункте Редактировать. Свойство OwnerData=True.
CurrentColumn - колонка под курсором мыши
CurremtRow - строка под курсором мыши
Text - текст ячейки под курсором мыши

MnuStaticEdit(column As Long, row As Long, Text As String)
Щелчок мыши в контекстном меню на пункте Редактировать. Свойство OwnerData=False.
column - колонка под курсором мыши
row - строка под курсором мыши
Text - текст ячейки под курсором мыши

MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

OdCacheHint(HwndFrom As OLE_HANDLE, IdFrom As Integer, Code As Integer, StartItem As Long, EndItem As Long)

ReadyStateChange()

StaticSearchNew(CurrentValueStr As String)
Щелчок мыши в контекстном меню на пункте Поиск->Найти. Свойство OwnerData=False.
CurrentValueStr - текст текущей ячейки

Validate(Cancel As Boolean)
 
6

62316e

Попробуй DbExpress который идет в дист. с билдером.
Там же и примеры есть(вроди).
 
Y

Yaponchick

С MySQL разобрался.

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

sdriver

А что такое бесконечный цикл -- поток:)Нажми ctr+alt+del и увидишь сколько их в системе.
 
Y

Yaponchick

Для: sdriver
Приведи пример пожайлуста, использования Threads в BCB, буду очень благодарен =)
 
S

sdriver

На BCB примеров нет. Создай класс от TThreads и просмотри все его методы и свойства и хелп почитай.
 
6

62316e

Для: Yaponchick
Ну можно проще сделать: Application->ProccesMessages (точно не помню но вроди так).
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!