Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ½ΡΡΠ½Π°: ΠΎΠ½Π° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅:
FROM artist, cd, trackΠ§Π°ΡΡΡ
WHEREWHERE artist.id = cd.artist_id AND track.cd_id = cd.id AND track.track_id < 3ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ
idartistartist_idcdidcdtrack.cd_id = cd.idtrackcdcd_idtrackidcdtrack.track_id < 3ANDΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π‘
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ GUI. ΠΡΠ΅ΠΆΠ΄Π΅ Π½Π°Π΄ΠΎ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ, ΠΊ Π²Π°ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘. ΠΠ±ΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ, ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅ΠΉΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ, β Π²ΡΠ΅Π³Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
mysql_use_resultmysql_fetch_rowΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° app_mysql.h, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠΊΡΡΡ:
/* Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°Β Β Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ΅ */struct current_cd_st {Β int artist_id;Β int cd_id;Β char artist_name[100];Β char title[100];Β char catalogue[100];};/* Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ΅ */struct current_tracks_st {Β int cd_id;Β char track[20][100];};#define MAX_CD_RESULT 10struct cd_search_st {Β int cd_id[MAX_CD_RESULT];};ΠΠ°Π»Π΅Π΅ ΠΏΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ:
/* Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
*/int database_start(char *name, char *password);void database_end();Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ ΠΈΡ Π·Π° ΠΊΠ°Π΄ΡΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ± ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΡΡ ΠΈΡ , ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π½Π΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π°Π»ΡΠ±ΠΎΠΌΠ΅.
/* Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ° */int add_cd(char *artist, char *title, char *catalogue, int *cd_id);int add_tracks(struct current_tracks_st *tracks);/* Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ° */int find_cds(char *search_str, struct cd_search_st *results);int get_cd(int cd_id, struct current_cd_st *dest);int get_cd_tracks(int cd_id, struct current_tracks_st *dest);/* Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² */int delete_cd(int cd_id);Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠ΅Π½Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½Π°Ρ: Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΡΡΡΠΎΠΊΡ, ΠΈ ΠΎΠ½Π° ΠΈΡΠ΅Ρ ΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ "ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ", "Π½Π°Π·Π²Π°Π½ΠΈΠ΅" ΠΈΠ»ΠΈ "ΠΊΠ°ΡΠ°Π»ΠΎΠ³".
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π΅Π³ΠΎ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, Π½ΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° app_test.c. Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² include ΠΈ ΡΠΈΠΏΠΎΠ² structs:
#include <stdlib.h>#include <stdio.h>#include <string.h>#include "app_mysql.h"int main() {Β struct current_cd_st cd;Β struct cd_search_st cd_res;Β struct current_tracks_st ct;Β int cd_id;Β int res, i;ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, β ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ (ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ):
Β database_start("rick", "secret");ΠΠ°Π»Π΅Π΅ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°:
Β res = add_cd("Mahler", "Symphony No 1", "4596102", &cd_id);Β printf("Result of adding a cd was %d, cd_id is %d\n", res, cd_id);Β memset(&ct, 0, sizeof(ct));Β ct.cd_id = cd_id;Β strcpy(ct.track[0], "Langsam Schleppend");