res = mysql_query(&my_cormection, qs);
if (res) {
fprintf(stderr, "SELECT error: %s\n", mysql_error(&my_connection));
} else {
res_ptr = mysql_store_result(&my_connection);
if (res_ptr) {
if (mysql_num_rows(res_ptr) > 0) {
if (mysqlrow = mysql_fetch_row(res_ptr)) {
sscanf(mysqlrow[0], "%d", &dest->artist_id);
sscanf(mysqlrow[1], "%d", &dest->cd_id);
strcpy(dest->artist_name, mysqlrow[2]);
strcpy(dest->title, mysqlrow[3]);
strcpy(dest->catalogue, mysqlrow[4]);
}
}
mysql_free_result(res_ptr);
}
}
if (dest->artist_id != -1) return 1;
return 0;
} /* get_cd */
ΠΠ°Π»Π΅Π΅ Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ . Π SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ORDER BY, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄ΠΎΡΠΎΠΆΠΊΠΈ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π ΠΎΠΏΡΡΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π‘Π£Π ΠΠ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠΆΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ Π΄ΠΎΡΠΎΠΆΠΊΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
int get_cd_tracks(int cd_id, struct current_tracks_st *dest) {
MYSQL_RES *res_ptr;
MYSQL_ROW mysqlrow;
int res;
char qs[250];
int i = 0, num_tracks = 0;
if (!dbconnected) return 0;
memset(dest, 0, sizeof(*dest));
dest->cd_id = -1;
sprintf(qs, "SELECT track_id, title FROM track WHERE track.cd_id = %d \
ORDER BY track_id", cd_id);
res = mysql_query(&my_connection, qs);
if (res) {
fprintf(stderr, "SELECT error: %s\n", mysql_error(&my_connection));
} else {
res_ptr = mysql_store_result(&my_connection);
if (res_ptr) {
if ((num_tracks = mysql_num_rows(res_ptr)) > 0) {
while (mysqlrow = mysql_fetch_row(res_ptr)) {
strcpy(dest->track[i], mysqlrow[1]);
i++;
}
dest->cd_id = cd_id;
}
mysql_free_result(res_ptr);
}
}
return num_tracks;
} /* get_cd_tracks */
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°Ρ . ΠΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ² ΡΠΈΡΠ»ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ, Π½ΠΎ Π²Π°ΠΌ Π²ΡΠ΅ ΠΆΠ΅ Π½ΡΠΆΠ½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ°Ρ ΠΎ ΡΠΎΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ.
int find_cds(char *search_str, struct cd_search_st *dest) {
MYSQL_RES *res_ptr;
MYSQL_ROW mysqlrow;
int res;
char qs[500];
int i = 0;
char ss[250];
int num_rows = 0;
if (!dbconnected) return 0;
ΠΡΠΈΡΡΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΈ Π·Π°ΡΠΈΡΠΈΡΠ΅ Π΅Π΅ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ°:
memset(dest, -1, sizeof(*dest));
mysql_escape_string(ss, search_str, strlen(search_str));
ΠΠ°Π»Π΅Π΅ Π²Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΠ΅ ΡΡΡΠΎΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² %, Ρ.ΠΊ. Π·Π½Π°ΠΊ % β ΡΡΠΎ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² SQL-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΠ½ΠΊΡΠΈΠΈ sprintf:
sprintf(qs, "SELECT DISTINCT artist.id, cd.id FROM artist, cd WHERE artist.id = cd.artist_id and (artist.name LIKE '%%%s%%' OR cd.title LIKE '%%%s%%' OR cd.catalogue LIKE '%%%s%%')", ss, ss, ss);
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ:
res = mysql_query(&my_connection, qs);
if (res) {
fprintf(stderr, "SELECT error: %s\n", mysql_error(&my_connection));
} else {
res_ptr = mysql_store_result(&my_connection);
if (res_ptr) {
num_rows = mysql_num_rows(res_ptr);
if (num_rows > 0) {
while ((mysqlrow = mysql_fetch_row(res_ptr)) && i < MAX_CD_RESULT) {
sscanf(mysqlrow[1], "%d", &dest->cd_id[i]);
i++;
}
}
mysql_free_result(res_ptr);
}
}
return num_rows;
} /* find_cds */
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ ΠΏΠΎ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ, β Π²Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΎΠ². Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΄Π°Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°, Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ² Ρ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ. Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ Π² ΡΠ·ΡΠΊΠ΅ SQL Π½Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π°Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ:
int delete_cd(int cd_id) {
int res;
char qs[250];
int artist_id, num_rows;
MYSQL_RES *res_ptr;
MYSQL_ROW mysqlrow;
if (!dbconnected) return 0;
artist_id = -1;
sprintf(qs, "SELECT artist_id FROM cd WHERE artist_id = \
(SELECT artist_id FROM cd WHERE id = '%d')", cd_id);
res = mysql_query(&my_connection, qs);
if (res) {
fprintf(stderr, "SELECT error: %s\n", mysql_error(&my_connection));
} else {
res_ptr = mysql_store_result(&my_connection);
if (res_ptr) {
num_rows = mysql_num_rows(res_ptr);
if (num_rows == 1) {
/* ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ CD */
mysqlrow = mysql_fetch_row(res_ptr);
sscanf(mysqlrow[0], "%d", &artist_id);
}
mysql_free_result(res_ptr);
}
}
sprintf(qs, "DELETE FROM track WHERE cd_id = '%d'", cd_id);
res = mysql_query(&my_connection, qs);
if (res) {
fprintf(stderr, "Delete error (track) %d: %s\n",
mysql_errno(&my_connection), mysql_error(&my_connection));
return 0;
}
sprintf(qs, "DELETE FROM cd WHERE id = '%d'", cd_id);
res = mysql_query(&my_connection, qs);
if (res) {
fprintf(stderr, "Delete error (cd) %d: %s\n",
mysql_errno(&my_connection), mysql_error(&my_connection));
return 0;
}
if (artist_id != -1) {
/* Π’Π΅ΠΏΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ artist Π½Π΅ ΡΠ²ΡΠ·Π°Π½ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ CD, ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΅Π³ΠΎ */
sprintf(qs, "DELETE FROM artist WHERE id = '%d'", artist_id);
res = mysqlquery(&my_connection, qs);
if (res) {
fprintf(stderr, "Delete error (artist) %d: %s\n",
mysql_errno(&my_connection), mysql_error(&my_connection));
}
}
return 1;
} /* delete_cd */
ΠΠ° ΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΠ»Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΆΠΈΠ·Π½ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» Makefile. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ include, Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π‘Π£Π ΠΠ MySQL Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
all: Π°ΡΡ
Π°ΡΡ: app_mysql.Ρ app_test.Ρ app_mysql.h
gcc -ΠΎ app -I/usr/include/mysql appmysql.Ρ app_test.Ρ -lmysqlclient -L/usr/lib/mysql
Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ GUI. Π‘Π΅ΠΉΡΠ°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° gdb, Π° Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MySQL Query Browser, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π Π΅Π·ΡΠΌΠ΅
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π‘Π£Π ΠΠ MySQL. ΠΠΎΠ»Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ°Ρ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΡ.
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ MySQL ΠΈ ΡΠ·Π½Π°Π»ΠΈ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π°Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ MySQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ API ΡΠ·ΡΠΊΠ° Π‘, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΡΠ΄Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Ρ Π‘Π£Π ΠΠ MySQL. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ° SQL Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ.
ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΡΠ° Π³Π»Π°Π²Π° Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΡ Π²Π°Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ SQL Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡ ΠΈΡΠΊΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΈΡ ΠΌΠΎΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π ΠΊΠ°ΠΊ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ MySQL β ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° MySQL Π½Π° ΡΠ°ΠΉΡΠ΅ www.mysql.com.
ΠΠ»Π°Π²Π° 9
Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π² ΠΠ‘ Linux, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ Π² ΠΠ‘ UNIX. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ, Linux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠ΄ ΡΡΠ΅Π΄ΡΡΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½ΠΎΠ²ΡΠΌΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΡΠ°ΡΡΡ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ UNIX, ΠΊΠΎΡΠΎΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»Π° ΠΠ‘ Linux. Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΡΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π ΡΡΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
β‘ ΠΊΠΎΠΌΠ°Π½Π΄Π° make ΠΈ make-ΡΠ°ΠΉΠ»Ρ;
β‘ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RCS ΠΈ CVS;
β‘ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°;
β‘ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ patch ΠΈ tar;
β‘ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠ΅ΠΌΡ ΡΠΈΠΊΠ»Π° "ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ β ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅" Π±ΡΡΡΡΠΎ ΡΠ°ΡΡΠ΅Ρ. ΠΠ°ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌΡ ΡΠ΅ΡΠΏΠ΅Π»ΠΈΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .