6 |
#include ".\MySQLLayer.h" |
#include ".\MySQLLayer.h" |
7 |
|
|
8 |
|
|
9 |
MySQLLayer::MySQLLayer(void) |
MySQLLayer::MySQLLayer(ConfigFile &config) |
10 |
{ |
{ |
11 |
db.OpenEx("ODBC;Description=asd;DRIVER=MySQL ODBC 3.51 Driver;SERVER=172.16.11.25; user=gruppe2;password=1337",CDatabase::noOdbcDialog); |
CString dsn; |
12 |
db.ExecuteSQL("USE Gruppe2"); |
dsn.Format("ODBC;Description=asd;DRIVER=MySQL ODBC 3.51 Driver;SERVER=%s;user=%s;password=%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 |
MySQLLayer::~MySQLLayer(void) |
MySQLLayer::~MySQLLayer(void) |
239 |
e.description = description; |
e.description = description; |
240 |
e.placement = placement; |
e.placement = placement; |
241 |
e.status = status; |
e.status = status; |
242 |
|
|
243 |
|
rs.Close(); |
244 |
|
|
245 |
|
//fill Equipment::checkouts |
246 |
|
|
247 |
|
SQL = "SELECT Udlån.StartDato, Udlån.Afleveringsdato,Udlån.Antaldage, Person.Initialer\ |
248 |
|
FROM Udlån\ |
249 |
|
INNER JOIN Person ON Udlån.PersonID = Person.PersonID "; |
250 |
|
SQL += "WHERE Udlån.Stregkode = " + barcode + " ORDER BY STARTDATO DESC LIMIT 10"; |
251 |
|
CRecordset rs(&db); |
252 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL); |
253 |
|
if (rs.GetRecordCount()>0) { |
254 |
|
rs.MoveFirst(); |
255 |
|
while ( !rs.IsEOF() ) { |
256 |
|
Checkout check; |
257 |
|
rs.GetFieldValue((short)0, check.startdate); |
258 |
|
rs.GetFieldValue(1, check.enddate); |
259 |
|
rs.GetFieldValue(2, check.numdays); |
260 |
|
rs.GetFieldValue(3, check.inits); |
261 |
|
|
262 |
|
e.checkouts.push_back(check); |
263 |
|
rs.MoveNext(); |
264 |
|
} |
265 |
|
} |
266 |
|
rs.Close(); |
267 |
|
|
268 |
|
// fill Equipment::reservations |
269 |
|
SQL = "SELECT Resevation.ResevationID, Resevation.StartDato, Person.Initialer\ |
270 |
|
FROM Resevation\ |
271 |
|
INNER JOIN Person ON Resevation.PersonID = Person.PersonID "; |
272 |
|
SQL += "WHERE Resevation.Stregkode = " + barcode + " ORDER BY STARTDATO ASC"; |
273 |
|
|
274 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL); |
275 |
|
if (rs.GetRecordCount()>0) { |
276 |
|
rs.MoveFirst(); |
277 |
|
while ( !rs.IsEOF() ) { |
278 |
|
Reservation res; |
279 |
|
rs.GetFieldValue((short)0, res.reservationID); |
280 |
|
rs.GetFieldValue(1, res.startdate); |
281 |
|
rs.GetFieldValue(2, res.inits); |
282 |
|
|
283 |
|
e.reservations.push_back(res); |
284 |
|
rs.MoveNext(); |
285 |
|
} |
286 |
|
} |
287 |
|
rs.Close(); |
288 |
} |
} |
|
rs.Close(); |
|
289 |
return e; |
return e; |
290 |
} |
} |
291 |
|
|
368 |
rs.Close(); |
rs.Close(); |
369 |
} |
} |
370 |
|
|
|
// 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 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 LIMIT 10"; |
|
|
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(); |
|
|
} |
|
|
|
|
371 |
return buffer; |
return buffer; |
372 |
} |
} |
373 |
|
|