Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
a0de3a43
Commit
a0de3a43
authored
Oct 13, 2002
by
miguel@hegel.br
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Builder C++ Embedded Server Sample
parent
7ba22428
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
559 additions
and
0 deletions
+559
-0
libmysqld/examples/builder-sample/emb_sample.bpr
libmysqld/examples/builder-sample/emb_sample.bpr
+192
-0
libmysqld/examples/builder-sample/emb_sample.cpp
libmysqld/examples/builder-sample/emb_sample.cpp
+23
-0
libmysqld/examples/builder-sample/emb_sample.tds
libmysqld/examples/builder-sample/emb_sample.tds
+0
-0
libmysqld/examples/builder-sample/emb_samples.cpp
libmysqld/examples/builder-sample/emb_samples.cpp
+283
-0
libmysqld/examples/builder-sample/emb_samples.dfm
libmysqld/examples/builder-sample/emb_samples.dfm
+0
-0
libmysqld/examples/builder-sample/emb_samples.h
libmysqld/examples/builder-sample/emb_samples.h
+61
-0
libmysqld/examples/builder-sample/images/db.ico
libmysqld/examples/builder-sample/images/db.ico
+0
-0
libmysqld/examples/builder-sample/images/find.ico
libmysqld/examples/builder-sample/images/find.ico
+0
-0
libmysqld/examples/builder-sample/images/logo.ico
libmysqld/examples/builder-sample/images/logo.ico
+0
-0
libmysqld/examples/builder-sample/images/mysql.bmp
libmysqld/examples/builder-sample/images/mysql.bmp
+0
-0
libmysqld/examples/builder-sample/images/net.ico
libmysqld/examples/builder-sample/images/net.ico
+0
-0
libmysqld/examples/builder-sample/libmysqld.lib
libmysqld/examples/builder-sample/libmysqld.lib
+0
-0
libmysqld/examples/builder-sample/snapshot.jpg
libmysqld/examples/builder-sample/snapshot.jpg
+0
-0
No files found.
libmysqld/examples/builder-sample/emb_sample.bpr
0 → 100644
View file @
a0de3a43
# ---------------------------------------------------------------------------
!if !$d(BCB)
BCB = $(MAKEDIR)\..
!endif
# ---------------------------------------------------------------------------
# IDE SECTION
# ---------------------------------------------------------------------------
# The following section of the project makefile is managed by the BCB IDE.
# It is recommended to use the IDE to change any of the values in this
# section.
# ---------------------------------------------------------------------------
VERSION = BCB.04.04
# ---------------------------------------------------------------------------
PROJECT = emb_sample.exe
OBJFILES = emb_sample.obj emb_samples.obj
RESFILES = emb_sample.res
RESDEPEN = $(RESFILES) emb_samples.dfm
LIBFILES = libmysqld.lib
LIBRARIES =
SPARELIBS = Vcl40.lib
PACKAGES = Vcl40.bpi Vclx40.bpi vcljpg40.bpi bcbsmp40.bpi Qrpt40.bpi Vcldb40.bpi \
ibsmp40.bpi vcldbx40.bpi TeeUI40.bpi teedb40.bpi tee40.bpi nmfast40.bpi \
dclocx40.bpi
DEFFILE =
# ---------------------------------------------------------------------------
PATHCPP = .;
PATHASM = .;
PATHPAS = .;
PATHRC = .;
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
USERDEFINES =
SYSDEFINES = _RTLDLL;NO_STRICT;USEPACKAGES
# ---------------------------------------------------------------------------
CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl;..\..\..\include -Od -Hc \
-H=$(BCB)\lib\vcl40.csm -w -Ve -r- -a8 -k -y -v -vi- -c -b- -w-par -w-inl -Vx \
-tW -tWM -D$(SYSDEFINES);$(USERDEFINES)
PFLAGS = -U$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
-I$(BCB)\include;$(BCB)\include\vcl;..\..\..\include -$YD -$W -$O- -v -JPHNE -M
RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl;..\..\..\include
AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /i..\..\..\include /mx /w2 /zd
LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpe -x -Gn -v
# ---------------------------------------------------------------------------
ALLOBJ = c0w32.obj Memmgr.Lib $(PACKAGES) sysinit.obj $(OBJFILES)
ALLRES = $(RESFILES)
ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib
# ---------------------------------------------------------------------------
!ifdef IDEOPTIONS
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1046
CodePage=1252
[Version Info Keys]
CompanyName=MySQL AB
FileDescription=Embedded Server Sample
FileVersion=1.0.0.0
InternalName=Builder Embedded Server Sample
LegalCopyright=GNU
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlIncludePath]
Count=2
Item0=$(BCB)\include;$(BCB)\include\vcl;..\..\..\include
Item1=$(BCB)\include;$(BCB)\include\vcl;..\..\..\inluce
[HistoryLists\hlLibraryPath]
Count=1
Item0=$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=$(BCB)\source\vcl
[Debugging]
DebugSourceDirs=$(BCB)\source\vcl
[Parameters]
RunParams=
HostApplication=
RemoteHost=
RemotePath=
RemoteDebug=0
[Compiler]
InMemoryExe=0
ShowInfoMsgs=0
!endif
# ---------------------------------------------------------------------------
# MAKE SECTION
# ---------------------------------------------------------------------------
# This section of the project file is not used by the BCB IDE. It is for
# the benefit of building from the command-line using the MAKE utility.
# ---------------------------------------------------------------------------
.autodepend
# ---------------------------------------------------------------------------
!if !$d(BCC32)
BCC32 = bcc32
!endif
!if !$d(CPP32)
CPP32 = cpp32
!endif
!if !$d(DCC32)
DCC32 = dcc32
!endif
!if !$d(TASM32)
TASM32 = tasm32
!endif
!if !$d(LINKER)
LINKER = ilink32
!endif
!if !$d(BRCC32)
BRCC32 = brcc32
!endif
# ---------------------------------------------------------------------------
!if $d(PATHCPP)
.PATH.CPP = $(PATHCPP)
.PATH.C = $(PATHCPP)
!endif
!if $d(PATHPAS)
.PATH.PAS = $(PATHPAS)
!endif
!if $d(PATHASM)
.PATH.ASM = $(PATHASM)
!endif
!if $d(PATHRC)
.PATH.RC = $(PATHRC)
!endif
# ---------------------------------------------------------------------------
$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
$(BCB)\BIN\$(LINKER) @&&!
$(LFLAGS) +
$(ALLOBJ), +
$(PROJECT),, +
$(ALLLIB), +
$(DEFFILE), +
$(ALLRES)
!
# ---------------------------------------------------------------------------
.pas.hpp:
$(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
.pas.obj:
$(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
.cpp.obj:
$(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
.c.obj:
$(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
.c.i:
$(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
.cpp.i:
$(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
.asm.obj:
$(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
.rc.res:
$(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
# ---------------------------------------------------------------------------
libmysqld/examples/builder-sample/emb_sample.cpp
0 → 100644
View file @
a0de3a43
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES
(
"emb_sample.res"
);
USEFORM
(
"emb_samples.cpp"
,
Form1
);
USELIB
(
"libmysqld.lib"
);
//---------------------------------------------------------------------------
WINAPI
WinMain
(
HINSTANCE
,
HINSTANCE
,
LPSTR
,
int
)
{
try
{
Application
->
Initialize
();
Application
->
Title
=
"MySQL Embedded Server Sample"
;
Application
->
CreateForm
(
__classid
(
TForm1
),
&
Form1
);
Application
->
Run
();
}
catch
(
Exception
&
exception
)
{
Application
->
ShowException
(
&
exception
);
}
return
0
;
}
//---------------------------------------------------------------------------
libmysqld/examples/builder-sample/emb_sample.tds
0 → 100644
View file @
a0de3a43
File added
libmysqld/examples/builder-sample/emb_samples.cpp
0 → 100644
View file @
a0de3a43
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "emb_samples.h"
#include <winsock.h>
#include <mysql.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <deque.h>
bool
b_new_line
=
false
;
const
char
*
server_groups
[]
=
{
""
,
"embedded"
,
"server"
,
NULL
};
MYSQL
*
MySQL
;
deque
<
string
>
fill_rows
(
MYSQL_RES
*
res
);
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1
*
Form1
;
//---------------------------------------------------------------------------
deque
<
string
>
fill_rows
(
MYSQL_RES
*
res
)
{
MYSQL_ROW
row
;
deque
<
string
>
rows
;
while
((
row
=
mysql_fetch_row
(
res
))
!=
0
)
{
mysql_field_seek
(
res
,
0
);
for
(
unsigned
int
i
=
0
;
i
<
mysql_num_fields
(
res
);
i
++
)
rows
.
push_back
(
row
[
i
]);
}
return
rows
;
}
//---------------------------------------------------------------------------
__fastcall
TForm1
::
TForm1
(
TComponent
*
Owner
)
:
TForm
(
Owner
)
{
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
Timer1Timer
(
TObject
*
Sender
)
{
if
(
is_server_started
)
{
ToggleButton
->
Caption
=
"Quit"
;
Timer1
->
Enabled
=
false
;
}
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
FormCreate
(
TObject
*
Sender
)
{
is_server_started
=
false
;
computer_ip
();
/* get the computer name and IP number */
/* init the tree database screen */
db_root
=
DBView
->
Items
->
Add
(
NULL
,
db_root_caption
.
UpperCase
());
db_root
->
ImageIndex
=
0
;
}
//---------------------------------------------------------------------------
/* button which handle the init of mysql server or quit the app */
void
__fastcall
TForm1
::
ToggleButtonClick
(
TObject
*
Sender
)
{
if
(
!
is_server_started
)
{
mysql_server_init
(
NULL
,
NULL
,
(
char
**
)
server_groups
)
;
connect_server
();
get_dbs
();
}
else
{
mysql_server_end
();
Close
();
}
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
computer_ip
(
void
)
{
WORD
wVersionRequested
;
WSADATA
WSAData
;
wVersionRequested
=
MAKEWORD
(
1
,
1
);
WSAStartup
(
wVersionRequested
,
&
WSAData
);
hostent
*
P
;
char
s
[
128
];
in_addr
in
;
char
*
P2
;
gethostname
(
s
,
128
);
P
=
gethostbyname
(
s
);
db_root_caption
=
P
->
h_name
;
in
.
S_un
.
S_un_b
.
s_b1
=
P
->
h_addr_list
[
0
][
0
];
in
.
S_un
.
S_un_b
.
s_b2
=
P
->
h_addr_list
[
0
][
1
];
in
.
S_un
.
S_un_b
.
s_b3
=
P
->
h_addr_list
[
0
][
2
];
in
.
S_un
.
S_un_b
.
s_b4
=
P
->
h_addr_list
[
0
][
3
];
P2
=
inet_ntoa
(
in
);
db_root_caption
+=
" ( "
+
(
AnsiString
)
P2
+
" )"
;
}
//---------------------------------------------------------------------------
bool
__fastcall
TForm1
::
connect_server
()
{
bool
ret_value
=
false
;
MySQL
=
mysql_init
(
MySQL
);
if
(
!
MySQL
)
return
ret_value
;
if
(
mysql_real_connect
(
MySQL
,
NULL
,
NULL
,
NULL
,
NULL
,
0
,
NULL
,
0
))
{
ret_value
=
true
;
is_server_started
=
true
;
}
return
ret_value
;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
FormDestroy
(
TObject
*
Sender
)
{
if
(
is_server_started
)
mysql_server_end
();
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
DBViewClick
(
TObject
*
Sender
)
{
if
(
DBView
->
Selected
!=
db_root
&&
DBView
->
Selected
!=
NULL
)
{
get_tables
(
DBView
->
Selected
->
Text
);
clean_desc_grid
();
}
}
//---------------------------------------------------------------------------
bool
__fastcall
TForm1
::
get_tables
(
String
db_name
)
{
MYSQL_RES
*
res
;
AnsiString
s_cmd
;
TableView
->
Items
->
Clear
();
s_cmd
=
"use "
;
s_cmd
+=
db_name
.
c_str
();
if
(
mysql_query
(
MySQL
,
s_cmd
.
c_str
())
||
!
(
res
=
mysql_list_tables
(
MySQL
,
"%"
)))
return
false
;
tables_node
=
TableView
->
Items
->
Add
(
NULL
,
db_name
.
c_str
());
tables_node
->
ImageIndex
=
1
;
tables_node
->
SelectedIndex
=
1
;
deque
<
string
>
rows
=
fill_rows
(
res
);
mysql_free_result
(
res
);
fill_tree
(
rows
,
tables_tree
,
tables_node
,
TableView
,
2
);
return
true
;
}
//---------------------------------------------------------------------------
bool
__fastcall
TForm1
::
get_dbs
(
void
)
{
MYSQL_RES
*
res
;
if
(
!
is_server_started
)
return
false
;
if
(
!
(
res
=
mysql_list_dbs
(
MySQL
,
"%"
)))
return
false
;
deque
<
string
>
rows
=
fill_rows
(
res
);
mysql_free_result
(
res
);
fill_tree
(
rows
,
MySQLDbs
,
db_root
,
DBView
,
1
);
info_server
->
Text
=
mysql_get_server_info
(
MySQL
);
return
true
;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
fill_tree
(
deque
<
string
>
rows
,
TTreeNode
*
root
,
TTreeNode
*
child
,
TTreeView
*
View
,
int
image_index
)
{
deque
<
string
>::
iterator
r
;
for
(
r
=
rows
.
begin
();
r
!=
rows
.
end
()
;
r
++
)
{
root
=
View
->
Items
->
AddChild
(
child
,
(
*
r
).
c_str
());
root
->
ImageIndex
=
image_index
;
root
->
SelectedIndex
=
image_index
;
}
child
->
Expanded
=
true
;
}
//---------------------------------------------------------------------------
bool
__fastcall
TForm1
::
get_desc_table
(
String
table_name
)
{
MYSQL_RES
*
res
,
*
res1
;
MYSQL_ROW
row
;
AnsiString
use_db
,
show_cols
,
show_desc
;
unsigned
int
num_fields
;
int
fields_control
=
0
,
grid_row
=
1
,
fields_number
;
b_new_line
=
true
;
clean_desc_grid
();
use_db
=
"use "
;
use_db
+=
DBView
->
Selected
->
Text
.
c_str
();
show_desc
=
"desc "
;
show_cols
=
"show full columns from "
;
show_cols
+=
table_name
.
c_str
();
show_desc
+=
table_name
.
c_str
();
if
(
mysql_query
(
MySQL
,
use_db
.
c_str
()
))
return
false
;
if
(
mysql_query
(
MySQL
,
show_cols
.
c_str
()
)
||
!
(
res1
=
mysql_store_result
(
MySQL
)))
{
if
(
mysql_query
(
MySQL
,
show_desc
.
c_str
()
)
||
!
(
res1
=
mysql_store_result
(
MySQL
)))
return
false
;
}
mysql_fetch_row
(
res1
);
mysql_field_seek
(
res1
,
0
);
fields_number
=
(
mysql_num_fields
(
res1
)
-
2
);
mysql_free_result
(
res1
);
if
(
mysql_query
(
MySQL
,
show_cols
.
c_str
()
)
||
!
(
res
=
mysql_store_result
(
MySQL
)))
{
if
(
mysql_query
(
MySQL
,
show_desc
.
c_str
()
)
||
!
(
res
=
mysql_store_result
(
MySQL
)))
return
false
;
}
titles_grid
();
while
((
row
=
mysql_fetch_row
(
res
))
!=
0
)
{
mysql_field_seek
(
res
,
0
);
for
(
num_fields
=
0
;
num_fields
<
mysql_num_fields
(
res
);
num_fields
++
)
{
if
(
fields_control
<=
fields_number
)
{
desc_table_grid
->
Cells
[
fields_control
][
grid_row
]
=
row
[
num_fields
];
fields_control
++
;
}
else
{
desc_table_grid
->
Cells
[(
fields_control
)][
grid_row
]
=
row
[
num_fields
];
fields_control
=
0
;
grid_row
++
;
desc_table_grid
->
RowCount
++
;
}
}
}
desc_table_grid
->
RowCount
--
;
mysql_free_result
(
res
);
return
true
;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
TableViewClick
(
TObject
*
Sender
)
{
if
(
DBView
->
Selected
!=
db_root
&&
DBView
->
Selected
!=
NULL
)
if
(
DBView
->
Selected
!=
tables_tree
)
get_desc_table
(
TableView
->
Selected
->
Text
);
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
clean_desc_grid
(
void
)
{
desc_table_grid
->
RowCount
=
2
;
desc_table_grid
->
Cells
[
0
][
1
]
=
""
;
desc_table_grid
->
Cells
[
1
][
1
]
=
""
;
desc_table_grid
->
Cells
[
2
][
1
]
=
""
;
desc_table_grid
->
Cells
[
3
][
1
]
=
""
;
desc_table_grid
->
Cells
[
4
][
1
]
=
""
;
desc_table_grid
->
Cells
[
5
][
1
]
=
""
;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1
::
titles_grid
(
void
)
{
desc_table_grid
->
Cells
[
0
][
0
]
=
"Field"
;
desc_table_grid
->
Cells
[
1
][
0
]
=
"Type"
;
desc_table_grid
->
Cells
[
2
][
0
]
=
"Null"
;
desc_table_grid
->
Cells
[
3
][
0
]
=
"Key"
;
desc_table_grid
->
Cells
[
4
][
0
]
=
"Default"
;
desc_table_grid
->
Cells
[
5
][
0
]
=
"Extra"
;
desc_table_grid
->
Cells
[
6
][
0
]
=
"Privileges"
;
}
libmysqld/examples/builder-sample/emb_samples.dfm
0 → 100644
View file @
a0de3a43
File added
libmysqld/examples/builder-sample/emb_samples.h
0 → 100644
View file @
a0de3a43
//---------------------------------------------------------------------------
#ifndef emb_samplesH
#define emb_samplesH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Grids.hpp>
#include <ImgList.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Buttons.hpp>
#include <deque.h>
//---------------------------------------------------------------------------
class
TForm1
:
public
TForm
{
__published:
// IDE-managed Components
TGroupBox
*
GroupBox1
;
TTreeView
*
DBView
;
TTreeView
*
TableView
;
TStringGrid
*
desc_table_grid
;
TImageList
*
ImageList2
;
TStatusBar
*
StatusBar1
;
TImage
*
Image1
;
TBitBtn
*
ToggleButton
;
TTimer
*
Timer1
;
TLabel
*
Label1
;
TEdit
*
info_server
;
TLabel
*
Label2
;
void
__fastcall
Timer1Timer
(
TObject
*
Sender
);
void
__fastcall
FormCreate
(
TObject
*
Sender
);
void
__fastcall
ToggleButtonClick
(
TObject
*
Sender
);
void
__fastcall
FormDestroy
(
TObject
*
Sender
);
void
__fastcall
DBViewClick
(
TObject
*
Sender
);
void
__fastcall
TableViewClick
(
TObject
*
Sender
);
private:
// User declarations
public:
// User declarations
bool
is_server_started
;
AnsiString
db_root_caption
;
TTreeNode
*
db_root
,
*
MySQLDbs
,
*
tables_node
,
*
tables_tree
;
void
__fastcall
computer_ip
(
void
);
bool
__fastcall
get_dbs
(
void
);
bool
__fastcall
get_tables
(
String
db_name
);
bool
__fastcall
get_desc_table
(
String
table_name
);
bool
__fastcall
connect_server
();
void
__fastcall
clean_desc_grid
(
void
);
void
__fastcall
titles_grid
(
void
);
void
__fastcall
fill_tree
(
deque
<
string
>
rows
,
TTreeNode
*
root
,
TTreeNode
*
child
,
TTreeView
*
View
,
int
image_index
);
__fastcall
TForm1
(
TComponent
*
Owner
);
};
//---------------------------------------------------------------------------
extern
PACKAGE
TForm1
*
Form1
;
//---------------------------------------------------------------------------
#endif
libmysqld/examples/builder-sample/images/db.ico
0 → 100644
View file @
a0de3a43
318 Bytes
libmysqld/examples/builder-sample/images/find.ico
0 → 100644
View file @
a0de3a43
766 Bytes
libmysqld/examples/builder-sample/images/logo.ico
0 → 100644
View file @
a0de3a43
1.97 KB
libmysqld/examples/builder-sample/images/mysql.bmp
0 → 100644
View file @
a0de3a43
8.55 KB
libmysqld/examples/builder-sample/images/net.ico
0 → 100644
View file @
a0de3a43
766 Bytes
libmysqld/examples/builder-sample/libmysqld.lib
0 → 100644
View file @
a0de3a43
File added
libmysqld/examples/builder-sample/snapshot.jpg
0 → 100644
View file @
a0de3a43
35.4 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment