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
78aa5f77
Commit
78aa5f77
authored
Oct 13, 2002
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Builder C++ Embedded Server Sample
parent
228bfb05
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 @
78aa5f77
# ---------------------------------------------------------------------------
!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 @
78aa5f77
//---------------------------------------------------------------------------
#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 @
78aa5f77
File added
libmysqld/examples/builder-sample/emb_samples.cpp
0 → 100644
View file @
78aa5f77
//---------------------------------------------------------------------------
#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 @
78aa5f77
File added
libmysqld/examples/builder-sample/emb_samples.h
0 → 100644
View file @
78aa5f77
//---------------------------------------------------------------------------
#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 @
78aa5f77
318 Bytes
libmysqld/examples/builder-sample/images/find.ico
0 → 100644
View file @
78aa5f77
766 Bytes
libmysqld/examples/builder-sample/images/logo.ico
0 → 100644
View file @
78aa5f77
1.97 KB
libmysqld/examples/builder-sample/images/mysql.bmp
0 → 100644
View file @
78aa5f77
8.55 KB
libmysqld/examples/builder-sample/images/net.ico
0 → 100644
View file @
78aa5f77
766 Bytes
libmysqld/examples/builder-sample/libmysqld.lib
0 → 100644
View file @
78aa5f77
File added
libmysqld/examples/builder-sample/snapshot.jpg
0 → 100644
View file @
78aa5f77
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