/[H6]/MicrosoftDBLayer.cpp
ViewVC logotype

Diff of /MicrosoftDBLayer.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 41 by torben, Tue Sep 5 12:50:38 2006 UTC revision 54 by torben, Tue Sep 12 09:09:30 2006 UTC
# Line 6  Line 6 
6  #include ".\MicrosoftDBLayer.h"  #include ".\MicrosoftDBLayer.h"
7    
8    
9  MicrosoftDBLayer::MicrosoftDBLayer(void)  MicrosoftDBLayer::MicrosoftDBLayer(ConfigFile &config)
10  {  {
11          db.OpenEx("ODBC; Description=; DRIVER=SQL Server; SERVER=TK-Teacher; UID=GroupTwo; PWD=toog30", CDatabase::noOdbcDialog);          CString dsn;
12          db.ExecuteSQL("USE GroupTwo");          dsn.Format("ODBC; Description=; DRIVER=SQL Server; SERVER=%s; UID=%s; PWD=%s", config.host, config.username, config.password);
13            db.OpenEx(dsn, CDatabase::noOdbcDialog);
14    
15            CString sql;
16            sql.Format("USE %s", config.database);
17            db.ExecuteSQL(sql);
18  }  }
19    
20  MicrosoftDBLayer::~MicrosoftDBLayer(void)  MicrosoftDBLayer::~MicrosoftDBLayer(void)
# Line 156  bool MicrosoftDBLayer::UpdateEquipment(E Line 161  bool MicrosoftDBLayer::UpdateEquipment(E
161          CheckEquip.placement.Replace("'","\"");          CheckEquip.placement.Replace("'","\"");
162          CheckEquip.status.Replace("'","\"");          CheckEquip.status.Replace("'","\"");
163          CheckEquip.barcode.Replace("'","\"");          CheckEquip.barcode.Replace("'","\"");
164          SQL.Format("UPDATE Udstyr SET Navn = '%s', Beskrivelse = '%s', Placering = '%s', Status = '%s' WHERE Stregkode = '%s'", CheckEquip.name, CheckEquip.description, CheckEquip.placement, CheckEquip.status, CheckEquip.barcode);          SQL.Format("UPDATE Udstyr SET Navn = '%s', Beskrivelse = '%s', Placering = '%s' WHERE Stregkode = '%s'", CheckEquip.name, CheckEquip.description, CheckEquip.placement, CheckEquip.barcode);
165          db.ExecuteSQL(SQL);          db.ExecuteSQL(SQL);
166          return true;          return true;
167  }  }
# Line 229  Equipment MicrosoftDBLayer::GetEquipment Line 234  Equipment MicrosoftDBLayer::GetEquipment
234                  e.description = description;                  e.description = description;
235                  e.placement = placement;                  e.placement = placement;
236                  e.status = status;                  e.status = status;
237    
238                    rs.Close();
239    
240                    //fill Equipment::checkouts
241                    SQL = "SELECT TOP 10 Udlån.StartDato, Udlån.Afleveringsdato,Udlån.Antaldage, Person.Initialer\
242                                    FROM Udlån\
243                                    INNER JOIN Person ON Udlån.PersonID = Person.PersonID ";
244                    SQL += "WHERE Udlån.Stregkode = " + barcode + " ORDER BY STARTDATO DESC";
245                    CRecordset rs(&db);
246                    rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
247                    if (rs.GetRecordCount()>0) {
248                            rs.MoveFirst();
249                            while ( !rs.IsEOF() ) {
250                                    Checkout check;
251                                    rs.GetFieldValue((short)0, check.startdate);
252                                    rs.GetFieldValue(1, check.enddate);
253                                    rs.GetFieldValue(2, check.numdays);
254                                    rs.GetFieldValue(3, check.inits);
255    
256                                    e.checkouts.push_back(check);
257                                    rs.MoveNext();
258                            }
259                    }
260                    rs.Close();
261                                    
262                    // fill Equipment::reservations
263                    SQL = "SELECT Resevation.ResevationID, Resevation.StartDato,  Person.Initialer\
264                                    FROM Resevation\
265                                    INNER JOIN Person ON Resevation.PersonID = Person.PersonID ";
266                    SQL += "WHERE Resevation.Stregkode = " + barcode + " ORDER BY STARTDATO ASC";
267                    
268                    rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
269                    if (rs.GetRecordCount()>0) {
270                            rs.MoveFirst();
271                            while ( !rs.IsEOF() ) {
272                                    Reservation res;
273                                    rs.GetFieldValue((short)0, res.reservationID);
274                                    rs.GetFieldValue(1, res.startdate);
275                                    rs.GetFieldValue(2, res.inits);
276    
277                                    e.reservations.push_back(res);
278                                    rs.MoveNext();
279                            }
280                    }
281                    rs.Close();
282          }          }
283          rs.Close();  
284          return e;          return e;
285  }  }
286    
# Line 313  vector<Equipment> MicrosoftDBLayer::Sear Line 363  vector<Equipment> MicrosoftDBLayer::Sear
363                  rs.Close();                  rs.Close();
364          }          }
365    
         // now I have the equipment rows the user asked for, now I need some more checkout and  
         // reservation data for each piece of equipment  
   
         for (int i=0; i<buffer.size(); i++) {  
                 //fill Equipment::checkouts  
                   
                 SQL = "SELECT TOP 10 Udlån.StartDato, Udlån.Afleveringsdato,Udlån.Antaldage, Person.Initialer\  
                                 FROM Udlån\  
                                 INNER JOIN Person ON Udlån.PersonID = Person.PersonID ";  
                 SQL += "WHERE Udlån.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO DESC";  
                 CRecordset rs(&db);  
                 rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);  
                 if (rs.GetRecordCount()>0) {  
                         rs.MoveFirst();  
                         while ( !rs.IsEOF() ) {  
                                 Checkout check;  
                                 rs.GetFieldValue((short)0, check.startdate);  
                                 rs.GetFieldValue(1, check.enddate);  
                                 rs.GetFieldValue(2, check.numdays);  
                                 rs.GetFieldValue(3, check.inits);  
   
                                 buffer[i].checkouts.push_back(check);  
                                 rs.MoveNext();  
                         }  
                 }  
                 rs.Close();  
                                   
                 // fill Equipment::reservations  
                 SQL = "SELECT Resevation.ResevationID, Resevation.StartDato,  Person.Initialer\  
                                 FROM Resevation\  
                                 INNER JOIN Person ON Resevation.PersonID = Person.PersonID ";  
                 SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC";  
                   
                 rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);  
                 if (rs.GetRecordCount()>0) {  
                         rs.MoveFirst();  
                         while ( !rs.IsEOF() ) {  
                                 Reservation res;  
                                 rs.GetFieldValue((short)0, res.reservationID);  
                                 rs.GetFieldValue(1, res.startdate);  
                                 rs.GetFieldValue(2, res.inits);  
   
                                 buffer[i].reservations.push_back(res);  
                                 rs.MoveNext();  
                         }  
                 }  
                 rs.Close();  
         }  
   
366          return buffer;          return buffer;
367  }  }
368    

Legend:
Removed from v.41  
changed lines
  Added in v.54

  ViewVC Help
Powered by ViewVC 1.1.20