J'ai pas testé ton code

because je bosse exclusivement sur pb3.94 au taf.
J'ai commencé à synthétiser les codes trouvés sur les forums, et ça donne cela :
Code : Tout sélectionner
;{/ Procédures MySQL
#Separateur=Chr(10)
;{/ Liste des erreurs MySql
#ER_ERROR_FIRST=1000
#ER_HASHCHK=1000
#ER_NISAMCHK=1001
#ER_NO=1002
#ER_YES=1003
#ER_CANT_CREATE_FILE=1004
#ER_CANT_CREATE_TABLE=1005
#ER_CANT_CREATE_DB=1006
#ER_DB_CREATE_EXISTS=1007
#ER_DB_DROP_EXISTS=1008
#ER_DB_DROP_DELETE=1009
#ER_DB_DROP_RMDIR=1010
#ER_CANT_DELETE_FILE=1011
#ER_CANT_FIND_SYSTEM_REC=1012
#ER_CANT_GET_STAT=1013
#ER_CANT_GET_WD=1014
#ER_CANT_LOCK=1015
#ER_CANT_OPEN_FILE=1016
#ER_FILE_NOT_FOUND=1017
#ER_CANT_READ_DIR=1018
#ER_CANT_SET_WD=1019
#ER_CHECKREAD=1020
#ER_DISK_FULL=1021
#ER_DUP_KEY=1022
#ER_ERROR_ON_CLOSE=1023
#ER_ERROR_ON_READ=1024
#ER_ERROR_ON_RENAME=1025
#ER_ERROR_ON_WRITE=1026
#ER_FILE_USED=1027
#ER_FILSORT_ABORT=1028
#ER_FORM_NOT_FOUND=1029
#ER_GET_ERRNO=1030
#ER_ILLEGAL_HA=1031
#ER_KEY_NOT_FOUND=1032
#ER_NOT_FORM_FILE=1033
#ER_NOT_KEYFILE=1034
#ER_OLD_KEYFILE=1035
#ER_OPEN_AS_READONLY=1036
#ER_OUTOFMEMORY=1037
#ER_OUT_OF_SORTMEMORY=1038
#ER_UNEXPECTED_EOF=1039
#ER_CON_COUNT_ERROR=1040
#ER_OUT_OF_RESOURCES=1041
#ER_BAD_HOST_ERROR=1042
#ER_HANDSHAKE_ERROR=1043
#ER_DBACCESS_DENIED_ERROR=1044
#ER_ACCESS_DENIED_ERROR=1045
#ER_NO_DB_ERROR=1046
#ER_UNKNOWN_COM_ERROR=1047
#ER_BAD_NULL_ERROR=1048
#ER_BAD_DB_ERROR=1049
#ER_TABLE_EXISTS_ERROR=1050
#ER_BAD_TABLE_ERROR=1051
#ER_NON_UNIQ_ERROR=1052
#ER_SERVER_SHUTDOWN=1053
#ER_BAD_FIELD_ERROR=1054
#ER_WRONG_FIELD_WITH_GROUP=1055
#ER_WRONG_GROUP_FIELD=1056
#ER_WRONG_SUM_SELECT=1057
#ER_WRONG_VALUE_COUNT=1058
#ER_TOO_LONG_IDENT=1059
#ER_DUP_FIELDNAME=1060
#ER_DUP_KEYNAME=1061
#ER_DUP_ENTRY=1062
#ER_WRONG_FIELD_SPEC=1063
#ER_PARSE_ERROR=1064
#ER_EMPTY_QUERY=1065
#ER_NONUNIQ_TABLE=1066
#ER_INVALID_DEFAULT=1067
#ER_MULTIPLE_PRI_KEY=1068
#ER_TOO_MANY_KEYS=1069
#ER_TOO_MANY_KEY_PARTS=1070
#ER_TOO_LONG_KEY=1071
#ER_KEY_COLUMN_DOES_NOT_EXITS=1072
#ER_BLOB_USED_AS_KEY=1073
#ER_TOO_BIG_FIELDLENGTH=1074
#ER_WRONG_AUTO_KEY=1075
#ER_READY=1076
#ER_NORMAL_SHUTDOWN=1077
#ER_GOT_SIGNAL=1078
#ER_SHUTDOWN_COMPLETE=1079
#ER_FORCING_CLOSE=1080
#ER_IPSOCK_ERROR=1081
#ER_NO_SUCH_INDEX=1082
#ER_WRONG_FIELD_TERMINATORS=1083
#ER_BLOBS_AND_NO_TERMINATED=1084
#ER_TEXTFILE_NOT_READABLE=1085
#ER_FILE_EXISTS_ERROR=1086
#ER_LOAD_INFO=1087
#ER_ALTER_INFO=1088
#ER_WRONG_SUB_KEY=1089
#ER_CANT_REMOVE_ALL_FIELDS=1090
#ER_CANT_DROP_FIELD_OR_KEY=1091
#ER_INSERT_INFO=1092
#ER_UPDATE_TABLE_USED=1093
#ER_NO_SUCH_THREAD=1094
#ER_KILL_DENIED_ERROR=1095
#ER_NO_TABLES_USED=1096
#ER_TOO_BIG_SET=1097
#ER_NO_UNIQUE_LOGFILE=1098
#ER_TABLE_NOT_LOCKED_FOR_WRITE=1099
#ER_TABLE_NOT_LOCKED=1100
#ER_BLOB_CANT_HAVE_DEFAULT=1101
#ER_WRONG_DB_NAME=1102
#ER_WRONG_TABLE_NAME=1103
#ER_TOO_BIG_SELECT=1104
#ER_UNKNOWN_ERROR=1105
#ER_UNKNOWN_PROCEDURE=1106
#ER_WRONG_PARAMCOUNT_TO_PROCEDURE=1107
#ER_WRONG_PARAMETERS_TO_PROCEDURE=1108
#ER_UNKNOWN_TABLE=1109
#ER_FIELD_SPECIFIED_TWICE=1110
#ER_INVALID_GROUP_FUNC_USE=1111
#ER_UNSUPPORTED_EXTENSION=1112
#ER_TABLE_MUST_HAVE_COLUMNS=1113
#ER_RECORD_FILE_FULL=1114
#ER_UNKNOWN_CHARACTER_SET=1115
#ER_TOO_MANY_TABLES=1116
#ER_TOO_MANY_FIELDS=1117
#ER_TOO_BIG_ROWSIZE=1118
#ER_STACK_OVERRUN=1119
#ER_WRONG_OUTER_JOIN=1120
#ER_NULL_COLUMN_IN_INDEX=1121
#ER_CANT_FIND_UDF=1122
#ER_CANT_INITIALIZE_UDF=1123
#ER_UDF_NO_PATHS=1124
#ER_UDF_EXISTS=1125
#ER_CANT_OPEN_LIBRARY=1126
#ER_CANT_FIND_DL_ENTRY=1127
#ER_FUNCTION_NOT_DEFINED=1128
#ER_HOST_IS_BLOCKED=1129
#ER_HOST_NOT_PRIVILEGED=1130
#ER_PASSWORD_ANONYMOUS_USER=1131
#ER_PASSWORD_NOT_ALLOWED=1132
#ER_PASSWORD_NO_MATCH=1133
#ER_UPDATE_INFO=1134
#ER_CANT_CREATE_THREAD=1135
#ER_WRONG_VALUE_COUNT_ON_ROW=1136
#ER_CANT_REOPEN_TABLE=1137
#ER_INVALID_USE_OF_NULL=1138
#ER_REGEXP_ERROR=1139
#ER_MIX_OF_GROUP_FUNC_AND_FIELDS=1140
#ER_NONEXISTING_GRANT=1141
#ER_TABLEACCESS_DENIED_ERROR=1142
#ER_COLUMNACCESS_DENIED_ERROR=1143
#ER_ILLEGAL_GRANT_FOR_TABLE=1144
#ER_GRANT_WRONG_HOST_OR_USER=1145
#ER_NO_SUCH_TABLE=1146
#ER_NONEXISTING_TABLE_GRANT=1147
#ER_NOT_ALLOWED_COMMAND=1148
#ER_SYNTAX_ERROR=1149
#ER_DELAYED_CANT_CHANGE_LOCK=1150
#ER_TOO_MANY_DELAYED_THREADS=1151
#ER_ABORTING_CONNECTION=1152
#ER_NET_PACKET_TOO_LARGE=1153
#ER_NET_READ_ERROR_FROM_PIPE=1154
#ER_NET_FCNTL_ERROR=1155
#ER_NET_PACKETS_OUT_OF_ORDER=1156
#ER_NET_UNCOMPRESS_ERROR=1157
#ER_NET_READ_ERROR=1158
#ER_NET_READ_INTERRUPTED=1159
#ER_NET_ERROR_ON_WRITE=1160
#ER_NET_WRITE_INTERRUPTED=1161
#ER_TOO_LONG_STRING=1162
#ER_TABLE_CANT_HANDLE_BLOB=1163
#ER_TABLE_CANT_HANDLE_AUTO_INCREMENT=1164
#ER_DELAYED_INSERT_TABLE_LOCKED=1165
#ER_WRONG_COLUMN_NAME=1166
#ER_WRONG_KEY_COLUMN=1167
#ER_WRONG_MRG_TABLE=1168
#ER_DUP_UNIQUE=1169
#ER_BLOB_KEY_WITHOUT_LENGTH=1170
#ER_PRIMARY_CANT_HAVE_NULL=1171
#ER_TOO_MANY_ROWS=1172
#ER_REQUIRES_PRIMARY_KEY=1173
#ER_NO_RAID_COMPILED=1174
#ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE=1175
#ER_KEY_DOES_NOT_EXITS=1176
#ER_CHECK_NO_SUCH_TABLE=1177
#ER_CHECK_NOT_IMPLEMENTED=1178
#ER_CANT_DO_THIS_DURING_AN_TRANSACTION=1179
#ER_ERROR_DURING_COMMIT=1180
#ER_ERROR_DURING_ROLLBACK=1181
#ER_ERROR_DURING_FLUSH_LOGS=1182
#ER_ERROR_DURING_CHECKPOINT=1183
#ER_NEW_ABORTING_CONNECTION=1184
#ER_DUMP_NOT_IMPLEMENTED=1185
#ER_FLUSH_MASTER_BINLOG_CLOSED=1186
#ER_INDEX_REBUILD=1187
#ER_MASTER=1188
#ER_MASTER_NET_READ=1189
#ER_MASTER_NET_WRITE=1190
#ER_FT_MATCHING_KEY_NOT_FOUND=1191
#ER_LOCK_OR_ACTIVE_TRANSACTION=1192
#ER_UNKNOWN_SYSTEM_VARIABLE=1193
#ER_CRASHED_ON_USAGE=1194
#ER_CRASHED_ON_REPAIR=1195
#ER_WARNING_NOT_COMPLETE_ROLLBACK=1196
#ER_TRANS_CACHE_FULL=1197
#ER_SLAVE_MUST_STOP=1198
#ER_SLAVE_NOT_RUNNING=1199
#ER_BAD_SLAVE=1200
#ER_MASTER_INFO=1201
#ER_SLAVE_THREAD=1202
#ER_TOO_MANY_USER_CONNECTIONS=1203
#ER_SET_CONSTANTS_ONLY=1204
#ER_LOCK_WAIT_TIMEOUT=1205
#ER_LOCK_TABLE_FULL=1206
#ER_READ_ONLY_TRANSACTION=1207
#ER_DROP_DB_WITH_READ_LOCK=1208
#ER_CREATE_DB_WITH_READ_LOCK=1209
#ER_WRONG_ARGUMENTS=1210
#ER_NO_PERMISSION_TO_CREATE_USER=1211
#ER_UNION_TABLES_IN_DIFFERENT_DIR=1212
#ER_LOCK_DEADLOCK=1213
#ER_TABLE_CANT_HANDLE_FT=1214
#ER_CANNOT_ADD_FOREIGN=1215
#ER_NO_REFERENCED_ROW=1216
#ER_ROW_IS_REFERENCED=1217
#ER_CONNECT_TO_MASTER=1218
#ER_QUERY_ON_MASTER=1219
#ER_ERROR_WHEN_EXECUTING_COMMAND=1220
#ER_WRONG_USAGE=1221
#ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT=1222
#ER_CANT_UPDATE_WITH_READLOCK=1223
#ER_MIXING_NOT_ALLOWED=1224
#ER_DUP_ARGUMENT=1225
#ER_USER_LIMIT_REACHED=1226
#ER_SPECIFIC_ACCESS_DENIED_ERROR=1227
#ER_LOCAL_VARIABLE=1228
#ER_GLOBAL_VARIABLE=1229
#ER_NO_DEFAULT=1230
#ER_WRONG_VALUE_FOR_VAR=1231
#ER_WRONG_TYPE_FOR_VAR=1232
#ER_VAR_CANT_BE_READ=1233
#ER_CANT_USE_OPTION_HERE=1234
#ER_NOT_SUPPORTED_YET=1235
#ER_MASTER_FATAL_ERROR_READING_BINLOG=1236
#ER_SLAVE_IGNORED_TABLE=1237
#ER_INCORRECT_GLOBAL_LOCAL_VAR=1238
#ER_WRONG_FK_DEF=1239
#ER_KEY_REF_DO_NOT_MATCH_TABLE_REF=1240
#ER_OPERAND_COLUMNS=1241
#ER_SUBQUERY_NO_1_ROW=1242
#ER_UNKNOWN_STMT_HANDLER=1243
#ER_CORRUPT_HELP_DB=1244
#ER_CYCLIC_REFERENCE=1245
#ER_AUTO_CONVERT=1246
#ER_ILLEGAL_REFERENCE=1247
#ER_DERIVED_MUST_HAVE_ALIAS=1248
#ER_SELECT_REDUCED=1249
#ER_TABLENAME_NOT_ALLOWED_HERE=1250
#ER_NOT_SUPPORTED_AUTH_MODE=1251
#ER_SPATIAL_CANT_HAVE_NULL=1252
#ER_COLLATION_CHARSET_MISMATCH=1253
#ER_SLAVE_WAS_RUNNING=1254
#ER_SLAVE_WAS_NOT_RUNNING=1255
#ER_TOO_BIG_FOR_UNCOMPRESS=1256
#ER_ZLIB_Z_MEM_ERROR=1257
#ER_ZLIB_Z_BUF_ERROR=1258
#ER_ZLIB_Z_DATA_ERROR=1259
#ER_CUT_VALUE_GROUP_CONCAT=1260
#ER_WARN_TOO_FEW_RECORDS=1261
#ER_WARN_TOO_MANY_RECORDS=1262
#ER_WARN_NULL_TO_NOTNULL=1263
#ER_WARN_DATA_OUT_OF_RANGE=1264
#WARN_DATA_TRUNCATED=1265
#ER_WARN_USING_OTHER_HANDLER=1266
#ER_CANT_AGGREGATE_2COLLATIONS=1267
#ER_DROP_USER=1268
#ER_REVOKE_GRANTS=1269
#ER_CANT_AGGREGATE_3COLLATIONS=1270
#ER_CANT_AGGREGATE_NCOLLATIONS=1271
#ER_VARIABLE_IS_NOT_STRUCT=1272
#ER_UNKNOWN_COLLATION=1273
#ER_SLAVE_IGNORED_SSL_PARAMS=1274
#ER_SERVER_IS_IN_SECURE_AUTH_MODE=1275
#ER_WARN_FIELD_RESOLVED=1276
#ER_BAD_SLAVE_UNTIL_COND=1277
#ER_MISSING_SKIP_SLAVE=1278
#ER_UNTIL_COND_IGNORED=1279
#ER_WRONG_NAME_FOR_INDEX=1280
#ER_WRONG_NAME_FOR_CATALOG=1281
#ER_WARN_QC_RESIZE=1282
#ER_BAD_FT_COLUMN=1283
#ER_UNKNOWN_KEY_CACHE=1284
#ER_WARN_HOSTNAME_WONT_WORK=1285
#ER_UNKNOWN_STORAGE_ENGINE=1286
#ER_WARN_DEPRECATED_SYNTAX=1287
#ER_NON_UPDATABLE_TABLE=1288
#ER_FEATURE_DISABLED=1289
#ER_OPTION_PREVENTS_STATEMENT=1290
#ER_DUPLICATED_VALUE_IN_TYPE=1291
#ER_TRUNCATED_WRONG_VALUE=1292
#ER_TOO_MUCH_AUTO_TIMESTAMP_COLS=1293
#ER_INVALID_ON_UPDATE=1294
#ER_UNSUPPORTED_PS=1295
#ER_GET_ERRMSG=1296
#ER_GET_TEMPORARY_ERRMSG=1297
#ER_UNKNOWN_TIME_ZONE=1298
#ER_WARN_INVALID_TIMESTAMP=1299
#ER_INVALID_CHARACTER_STRING=1300
#ER_WARN_ALLOWED_PACKET_OVERFLOWED=1301
#ER_CONFLICTING_DECLARATIONS=1302
#ER_SP_NO_RECURSIVE_CREATE=1303
#ER_SP_ALREADY_EXISTS=1304
#ER_SP_DOES_NOT_EXIST=1305
#ER_SP_DROP_FAILED=1306
#ER_SP_STORE_FAILED=1307
#ER_SP_LILABEL_MISMATCH=1308
#ER_SP_LABEL_REDEFINE=1309
#ER_SP_LABEL_MISMATCH=1310
#ER_SP_UNINIT_VAR=1311
#ER_SP_BADSELECT=1312
#ER_SP_BADRETURN=1313
#ER_SP_BADSTATEMENT=1314
#ER_UPDATE_LOG_DEPRECATED_IGNORED=1315
#ER_UPDATE_LOG_DEPRECATED_TRANSLATED=1316
#ER_QUERY_INTERRUPTED=1317
#ER_SP_WRONG_NO_OF_ARGS=1318
#ER_SP_COND_MISMATCH=1319
#ER_SP_NORETURN=1320
#ER_SP_NORETURNEND=1321
#ER_SP_BAD_CURSOR_QUERY=1322
#ER_SP_BAD_CURSOR_SELECT=1323
#ER_SP_CURSOR_MISMATCH=1324
#ER_SP_CURSOR_ALREADY_OPEN=1325
#ER_SP_CURSOR_NOT_OPEN=1326
#ER_SP_UNDECLARED_VAR=1327
#ER_SP_WRONG_NO_OF_FETCH_ARGS=1328
#ER_SP_FETCH_NO_DATA=1329
#ER_SP_DUP_PARAM=1330
#ER_SP_DUP_VAR=1331
#ER_SP_DUP_COND=1332
#ER_SP_DUP_CURS=1333
#ER_SP_CANT_ALTER=1334
#ER_SP_SUBSELECT_NYI=1335
#ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG=1336
#ER_SP_VARCOND_AFTER_CURSHNDLR=1337
#ER_SP_CURSOR_AFTER_HANDLER=1338
#ER_SP_CASE_NOT_FOUND=1339
#ER_FPARSER_TOO_BIG_FILE=1340
#ER_FPARSER_BAD_HEADER=1341
#ER_FPARSER_EOF_IN_COMMENT=1342
#ER_FPARSER_ERROR_IN_PARAMETER=1343
#ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER=1344
#ER_VIEW_NO_EXPLAIN=1345
#ER_FRM_UNKNOWN_TYPE=1346
#ER_WRONG_OBJECT=1347
#ER_NONUPDATEABLE_COLUMN=1348
#ER_VIEW_SELECT_DERIVED=1349
#ER_VIEW_SELECT_CLAUSE=1350
#ER_VIEW_SELECT_VARIABLE=1351
#ER_VIEW_SELECT_TMPTABLE=1352
#ER_VIEW_WRONG_LIST=1353
#ER_WARN_VIEW_MERGE=1354
#ER_WARN_VIEW_WITHOUT_KEY=1355
#ER_VIEW_INVALID=1356
#ER_SP_NO_DROP_SP=1357
#ER_SP_GOTO_IN_HNDLR=1358
#ER_TRG_ALREADY_EXISTS=1359
#ER_TRG_DOES_NOT_EXIST=1360
#ER_TRG_ON_VIEW_OR_TEMP_TABLE=1361
#ER_TRG_CANT_CHANGE_ROW=1362
#ER_TRG_NO_SUCH_ROW_IN_TRG=1363
#ER_NO_DEFAULT_FOR_FIELD=1364
#ER_DIVISION_BY_ZERO=1365
#ER_TRUNCATED_WRONG_VALUE_FOR_FIELD=1366
#ER_ILLEGAL_VALUE_FOR_TYPE=1367
#ER_VIEW_NONUPD_CHECK=1368
#ER_VIEW_CHECK_FAILED=1369
#ER_PROCACCESS_DENIED_ERROR=1370
#ER_RELAY_LOG_FAIL=1371
#ER_PASSWD_LENGTH=1372
#ER_UNKNOWN_TARGET_BINLOG=1373
#ER_IO_ERR_LOG_INDEX_READ=1374
#ER_BINLOG_PURGE_PROHIBITED=1375
#ER_FSEEK_FAIL=1376
#ER_BINLOG_PURGE_FATAL_ERR=1377
#ER_LOG_IN_USE=1378
#ER_LOG_PURGE_UNKNOWN_ERR=1379
#ER_RELAY_LOG_INIT=1380
#ER_NO_BINARY_LOGGING=1381
#ER_RESERVED_SYNTAX=1382
#ER_WSAS_FAILED=1383
#ER_DIFF_GROUPS_PROC=1384
#ER_NO_GROUP_FOR_PROC=1385
#ER_ORDER_WITH_PROC=1386
#ER_LOGGING_PROHIBIT_CHANGING_OF=1387
#ER_NO_FILE_MAPPING=1388
#ER_WRONG_MAGIC=1389
#ER_PS_MANY_PARAM=1390
#ER_KEY_PART_0=1391
#ER_VIEW_CHECKSUM=1392
#ER_VIEW_MULTIUPDATE=1393
#ER_VIEW_NO_INSERT_FIELD_LIST=1394
#ER_VIEW_DELETE_MERGE_VIEW=1395
#ER_CANNOT_USER=1396
#ER_XAER_NOTA=1397
#ER_XAER_INVAL=1398
#ER_XAER_RMFAIL=1399
#ER_XAER_OUTSIDE=1400
#ER_XAER_RMERR=1401
#ER_XA_RBROLLBACK=1402
#ER_NONEXISTING_PROC_GRANT=1403
#ER_PROC_AUTO_GRANT_FAIL=1404
#ER_PROC_AUTO_REVOKE_FAIL=1405
#ER_DATA_TOO_LONG=1406
#ER_SP_BAD_SQLSTATE=1407
#ER_STARTUP=1408
#ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR=1409
#ER_CANT_CREATE_USER_WITH_GRANT=1410
#ER_WRONG_VALUE_FOR_TYPE=1411
#ER_TABLE_DEF_CHANGED=1412
#ER_SP_DUP_HANDLER=1413
#ER_SP_NOT_VAR_ARG=1414
#ER_SP_NO_RETSET=1415
#ER_CANT_CREATE_GEOMETRY_OBJECT=1416
#ER_FAILED_ROUTINE_BREAK_BINLOG=1417
#ER_BINLOG_UNSAFE_ROUTINE=1418
#ER_BINLOG_CREATE_ROUTINE_NEED_SUPER=1419
#ER_EXEC_STMT_WITH_OPEN_CURSOR=1420
#ER_STMT_HAS_NO_OPEN_CURSOR=1421
#ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG=1422
#ER_NO_DEFAULT_FOR_VIEW_FIELD=1423
#ER_SP_NO_RECURSION=1424
#ER_TOO_BIG_SCALE=1425
#ER_TOO_BIG_PRECISION=1426
#ER_M_BIGGER_THAN_D=1427
#ER_WRONG_LOCK_OF_SYSTEM_TABLE=1428
#ER_CONNECT_TO_FOREIGN_DATA_SOURCE=1429
#ER_QUERY_ON_FOREIGN_DATA_SOURCE=1430
#ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST=1431
#ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE=1432
#ER_FOREIGN_DATA_STRING_INVALID=1433
#ER_CANT_CREATE_FEDERATED_TABLE=1434
#ER_TRG_IN_WRONG_SCHEMA=1435
#ER_STACK_OVERRUN_NEED_MORE=1436
#ER_TOO_LONG_BODY=1437
#ER_WARN_CANT_DROP_DEFAULT_KEYCACHE=1438
#ER_TOO_BIG_DISPLAYWIDTH=1439
#ER_XAER_DUPID=1440
#ER_DATETIME_FUNCTION_OVERFLOW=1441
#ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG=1442
#ER_VIEW_PREVENT_UPDATE=1443
#ER_PS_NO_RECURSION=1444
#ER_SP_CANT_SET_AUTOCOMMIT=1445
#ER_NO_VIEW_USER=1446
#ER_VIEW_FRM_NO_USER=1447
#ER_VIEW_OTHER_USER=1448
#ER_NO_SUCH_USER=1449
#ER_FORBID_SCHEMA_CHANGE=1450
#ER_ROW_IS_REFERENCED_2=1451
#ER_NO_REFERENCED_ROW_2=1452
#ER_SP_BAD_VAR_SHADOW=1453
#ER_ERROR_LAST=1453
;}
Procedure MySqlConnect(Server.s,DatabaseName.s,User.s,Pwd.s,Port.l)
Shared MySqlDllId,LibMySqlHandle,LibMySqlDll.s
If LibMySqlDll=""
NewList TableauMySql.s()
EndIf
LibMySqlDll=GetTempDirectory()+"libmysql.dll"
If SaveResourceAs("DLL",LibMySqlDll)=0
ProcedureReturn 0
EndIf
MySqlDllId=OpenLibrary(#PB_Any,LibMySqlDll)
If MySqlDllId
LibMySqlHandle=CallFunction(MySqlDllId,"mysql_init",0)
If LibMySqlHandle=0
ProcedureReturn 0
Else
If CallFunction(MySqlDllId,"mysql_real_connect",LibMySqlHandle, Server, User, Pwd, DatabaseName, Port, "", 0)
ProcedureReturn 1
EndIf
EndIf
EndIf
EndProcedure
Procedure MySqlError() ; >0 --> erreur
Shared MySqlDllId,LibMySqlHandle
ProcedureReturn CallFunction(MySqlDllId,"mysql_errno",LibMySqlHandle)
EndProcedure
Procedure.s MySqlGetErrorAsText()
Shared MySqlDllId,LibMySqlHandle
Protected Errormsg.s, i.l, Error.l
*Error =CallFunction(MySqlDllId,"mysql_error",LibMySqlHandle)
i=-1
Repeat
i=i+1
Errormsg=Errormsg+PeekS(*Error+i,1)
Until PeekB(*Error+i)=0
;MessageRequester("MySQL error",Errormsg,#PB_MessageRequester_Ok)
ProcedureReturn Errormsg
EndProcedure
Procedure MySqlQuery(SqlQuery.s)
Shared MySqlDllId,LibMySqlHandle
If CallFunction(MySqlDllId,"mysql_query",LibMySqlHandle,@SqlQuery)=0 ; succès si retourne 0
ProcedureReturn 1
EndIf
EndProcedure
Procedure MySqlGetResult()
Shared MySqlDllId,LibMySqlHandle,MySqlRowCount,MySqlFieldCount
MySqlResultHandle= CallFunction(MySqlDllId,"mysql_store_result",LibMySqlHandle)
If MySqlResultHandle
MySqlRowCount=CallFunction(MySqlDllId,"mysql_num_rows",MySqlResultHandle)
MySqlFieldCount=CallFunction(MySqlDllId,"mysql_num_fields",MySqlResultHandle)
;/
ClearList(TableauMySql())
For i=1 To MySqlRowCount
Out.s=""
FlagDebutLigne=0
ligne=CallFunction(MySqlDllId,"mysql_fetch_row",MySqlResultHandle); donne l'adresse du debut d'une ligne de résultats
For boucle = 0 To MySqlFieldCount-1 ;le premier champ est le 0, le second le 1...
pointeur=PeekL(ligne+4*(boucle));donne l'adresse du champ à lire / cette adresse est stockée sur 4 octets (soit 32 bits) donc entier Long / donc commande PeekL et incrémentation de 4 à chaque passage.
If pointeur>0
valeur.s=PeekS(pointeur) ; met le contenu du champ dans la variable chaîne 'valeur' / C'est une chaîne, donc PeekS
Else
valeur="NULL"
EndIf
If FlagDebutLigne
Out.s+#Separateur
EndIf
FlagDebutLigne=1
Out+valeur
Next boucle
AddElement(TableauMySql())
TableauMySql()=Out
Next i
;/
CallFunction(MySqlDllId,"mysql_free_result",MySqlResultHandle)
ProcedureReturn 1
EndIf
EndProcedure
Procedure MySqlNumRow()
Shared MySqlRowCount
ProcedureReturn MySqlRowCount
EndProcedure
Procedure MySqlNumFields()
Shared MySqlFieldCount
ProcedureReturn MySqlFieldCount
EndProcedure
Procedure MySqlClose()
Shared MySqlDllId,LibMySqlHandle,LibMySqlDll.s
CallFunction(MySqlDllId,"mysql_close",LibMySqlHandle)
CloseLibrary(MySqlDllId)
DeleteFile(LibMySqlDll)
EndProcedure
;}
Ce code utilise la DroopyLib 3.94 ( vous pouvez remplacer cette portion de code par une ouverture classique de dll par openlibrary ) :
Code : Tout sélectionner
LibMySqlDll=GetTempDirectory()+"libmysql.dll"
If SaveResourceAs("DLL",LibMySqlDll)=0
ProcedureReturn 0
EndIf