Mercurial > urweb
comparison src/mysql.sml @ 1013:d9483301ff0e
Get char working with MySQL
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 22 Oct 2009 17:04:37 -0400 |
parents | 16f7cb0891b6 |
children | ea9f03ac2710 |
comparison
equal
deleted
inserted
replaced
1012:32dbb5636ae7 | 1013:d9483301ff0e |
---|---|
47 fun p_buffer_type t = | 47 fun p_buffer_type t = |
48 case t of | 48 case t of |
49 Int => "MYSQL_TYPE_LONGLONG" | 49 Int => "MYSQL_TYPE_LONGLONG" |
50 | Float => "MYSQL_TYPE_DOUBLE" | 50 | Float => "MYSQL_TYPE_DOUBLE" |
51 | String => "MYSQL_TYPE_STRING" | 51 | String => "MYSQL_TYPE_STRING" |
52 | Char => "MYSQL_TYPE_TINY" | 52 | Char => "MYSQL_TYPE_STRING" |
53 | Bool => "MYSQL_TYPE_LONG" | 53 | Bool => "MYSQL_TYPE_LONG" |
54 | Time => "MYSQL_TYPE_TIMESTAMP" | 54 | Time => "MYSQL_TYPE_TIMESTAMP" |
55 | Blob => "MYSQL_TYPE_BLOB" | 55 | Blob => "MYSQL_TYPE_BLOB" |
56 | Channel => "MYSQL_TYPE_LONGLONG" | 56 | Channel => "MYSQL_TYPE_LONGLONG" |
57 | Client => "MYSQL_TYPE_LONG" | 57 | Client => "MYSQL_TYPE_LONG" |
788 string (Int.toString i), | 788 string (Int.toString i), |
789 string "].length = &length", | 789 string "].length = &length", |
790 string (Int.toString i), | 790 string (Int.toString i), |
791 string ";", | 791 string ";", |
792 newline] | 792 newline] |
793 | Char => box [string "out[", | |
794 string (Int.toString i), | |
795 string "].buffer_length = 1;", | |
796 newline, | |
797 string "out[", | |
798 string (Int.toString i), | |
799 string "].buffer = &buffer", | |
800 string (Int.toString i), | |
801 string ";", | |
802 newline] | |
793 | Blob => box [string "out[", | 803 | Blob => box [string "out[", |
794 string (Int.toString i), | 804 string (Int.toString i), |
795 string "].length = &length", | 805 string "].length = &length", |
796 string (Int.toString i), | 806 string (Int.toString i), |
797 string ";", | 807 string ";", |
925 string (Int.toString i), | 935 string (Int.toString i), |
926 string ";", | 936 string ";", |
927 newline] | 937 newline] |
928 | Time => box [string "MYSQL_TIME in_buffer", | 938 | Time => box [string "MYSQL_TIME in_buffer", |
929 string (Int.toString i), | 939 string (Int.toString i), |
930 string ";", newline] | 940 string ";", |
941 newline] | |
931 | _ => box [] | 942 | _ => box [] |
932 in | 943 in |
933 box [case t of | 944 box [case t of |
934 Nullable t => box [string "my_bool in_is_null", | 945 Nullable t => box [string "my_bool in_is_null", |
935 string (Int.toString i), | 946 string (Int.toString i), |
1021 string (Int.toString i), | 1032 string (Int.toString i), |
1022 string "].length = &in_length", | 1033 string "].length = &in_length", |
1023 string (Int.toString i), | 1034 string (Int.toString i), |
1024 string ";", | 1035 string ";", |
1025 newline] | 1036 newline] |
1037 | Char => box [string "in[", | |
1038 string (Int.toString i), | |
1039 string "].buffer = &arg", | |
1040 string (Int.toString (i + 1)), | |
1041 string ";", | |
1042 newline, | |
1043 string "in[", | |
1044 string (Int.toString i), | |
1045 string "].buffer_length = 1;", | |
1046 newline] | |
1026 | Blob => box [string "in[", | 1047 | Blob => box [string "in[", |
1027 string (Int.toString i), | 1048 string (Int.toString i), |
1028 string "].buffer = arg", | 1049 string "].buffer = arg", |
1029 string (Int.toString (i + 1)), | 1050 string (Int.toString (i + 1)), |
1030 string ".data;", | 1051 string ".data;", |
1183 newline] | 1204 newline] |
1184 | 1205 |
1185 fun dml loc = | 1206 fun dml loc = |
1186 box [string "uw_conn *conn = uw_get_db(ctx);", | 1207 box [string "uw_conn *conn = uw_get_db(ctx);", |
1187 newline, | 1208 newline, |
1188 string "MYSQL_stmt *stmt = mysql_stmt_init(conn->conn);", | 1209 string "MYSQL_STMT *stmt = mysql_stmt_init(conn->conn);", |
1189 newline, | 1210 newline, |
1190 string "if (stmt == NULL) uw_error(ctx, FATAL, \"", | 1211 string "if (stmt == NULL) uw_error(ctx, FATAL, \"", |
1191 string (ErrorMsg.spanToString loc), | 1212 string (ErrorMsg.spanToString loc), |
1192 string ": can't allocate temporary prepared statement\");", | 1213 string ": can't allocate temporary prepared statement\");", |
1193 newline, | 1214 newline, |