private void GenMessageLoadAll(MessageDef messageDef, TextWriter sw)
{
try {
sw.WriteLine();
sw.WriteLine("\t\tprivate static List<GeneralRecordData> LoadAll{0}(int start, int count)", messageDef.m_TypeName);
sw.WriteLine("\t\t{");
sw.WriteLine("\t\t\tList<GeneralRecordData> ret = new List<GeneralRecordData>();");
sw.WriteLine("\t\t\ttry {");
sw.WriteLine("\t\t\t using (MySqlCommand cmd = new MySqlCommand()) {");
sw.WriteLine("\t\t\t cmd.Connection = DBConn.MySqlConn;");
sw.WriteLine("\t\t\t cmd.CommandType = CommandType.StoredProcedure;");
sw.WriteLine("\t\t\t cmd.CommandText = \"LoadAll{0}\";", messageDef.m_TypeName);
sw.WriteLine("\t\t\t MySqlParameter inputParam;");
sw.WriteLine("\t\t\t inputParam = new MySqlParameter(\"@_Start\", MySqlDbType.Int32);");
sw.WriteLine("\t\t\t inputParam.Direction = ParameterDirection.Input;");
sw.WriteLine("\t\t\t inputParam.Value = start;");
sw.WriteLine("\t\t\t cmd.Parameters.Add(inputParam);");
sw.WriteLine("\t\t\t inputParam = new MySqlParameter(\"@_Count\", MySqlDbType.Int32);");
sw.WriteLine("\t\t\t inputParam.Direction = ParameterDirection.Input;");
sw.WriteLine("\t\t\t inputParam.Value = count;");
sw.WriteLine("\t\t\t cmd.Parameters.Add(inputParam);");
sw.WriteLine("\t\t\t using (DbDataReader reader = cmd.ExecuteReader()) {");
sw.WriteLine("\t\t\t while (reader.Read()) {");
sw.WriteLine("\t\t\t GeneralRecordData record = new GeneralRecordData();");
sw.WriteLine("\t\t\t object val;");
sw.WriteLine("\t\t\t {0} msg = new {1}();", messageDef.m_TypeName, messageDef.m_TypeName);
foreach (MemberDef memberDef in messageDef.m_Members) {
sw.WriteLine("\t\t\t val = reader[\"{0}\"];", memberDef.m_MemberName);
sw.WriteLine("\t\t\t msg.{0} = ({1})val;", memberDef.m_MemberName, GetMessageType(memberDef.m_TypeName));
if (memberDef.m_IsPrimaryKey) {
sw.WriteLine("\t\t\t record.PrimaryKeys.Add(val.ToString());");
} else if (memberDef.m_IsForeignKey) {
sw.WriteLine("\t\t\t record.ForeignKeys.Add(val.ToString());");
}
}
sw.WriteLine("\t\t\t record.DataVersion = (int)reader[\"DataVersion\"];");
sw.WriteLine("\t\t\t record.Data = DbDataSerializer.Encode(msg);");
sw.WriteLine("\t\t\t ret.Add(record);");
sw.WriteLine("\t\t\t }");
sw.WriteLine("\t\t\t }");
sw.WriteLine("\t\t\t }");
sw.WriteLine("\t\t\t} catch (Exception ex) {");
sw.WriteLine("\t\t\t DBConn.Close();");
sw.WriteLine("\t\t\t throw ex;");
sw.WriteLine("\t\t\t}");
sw.WriteLine("\t\t\treturn ret;");
sw.WriteLine("\t\t}");
sw.WriteLine();
} catch (Exception ex) {
Console.WriteLine(ex);
}
}