Ik heb een programma geschreven in C++, dat het aanmeldscherm moet uitvoeren (via CGI) van een toekomstig onderdeel van mijn Website. Ik was van plan de waardes die dit programma gebruikt uit te lezen uit een Database, zodat ik het programma niet hoefde te hercompileren als ik bijvoorbeeld een andere venstertitel wou.
Ik heb een Microsoft Access 97 Database gemaakt met een tabel genaam logonscreen. Deze tabel bevat de volgende waarden:
Dit is de gebruikte (niet correct werkende) code. Ik heb echt geen idee wat er fout gaat, maar als ik het programma heb gecompileerd en hij loopt vast, krijg ik via de foutopsporing te horen dat de fout in AFXWIN.H zit.
Ik vermoed zelf dat de fout zit in het gedeete van recordset.GetFieldValue, maar ik weet niet wat er fout aan is.
Ik gebruik Microsoft Visual C++ 6.0 (enterprise), met Microsoft Access 97 voor de database.
Ik heb een Microsoft Access 97 Database gemaakt met een tabel genaam logonscreen. Deze tabel bevat de volgende waarden:
code:
1
2
3
4
5
6
7
8
9
| Id1 strValue -------------------------------------- strHTMLcmdCancel Cancel strHTMLcmdSubmit Log In strHTMLMainMessage Welkom strHTMLPass Password strHTMLsrcStyle logonscreen.css strHTMLTitle C++ Test strHTMLUser Username |
Dit is de gebruikte (niet correct werkende) code. Ik heb echt geen idee wat er fout gaat, maar als ik het programma heb gecompileerd en hij loopt vast, krijg ik via de foutopsporing te horen dat de fout in AFXWIN.H zit.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| // Logon.cpp: Geeft het Logonscherm weer #include <string> #include <iostream> #include <afxdb.h> using namespace std; int main() { // De Database ODBC Driver specificeren CString sSpecifyDriver = "MICROSOFT ACCESS DRIVER (*.mdb)"; // De Plaats van de Database opgeven CString sPathToAccessFile = "c:\\Inetpub\\executes\\main.mdb"; // De ODBC connectie opzetten, die word uitgevoerd door de ODBC API CString sDataSourceName; sDataSourceName.Format("ODBC;DRIVER=%s;DSN='';Dbq=%s;", sSpecifyDriver, sPathToAccessFile); // De database conencten/openen CDatabase dbLogonScreen; dbLogonScreen.Open (NULL, false, false, sDataSourceName); CRecordset recordset(&dbLogonScreen); // De SQL opdracht CString queryString = "select * from loginscreen"; // Zoekopdracht uitvoeren recordset.Open(CRecordset::forwardOnly, queryString, CRecordset::none); // Declareren van de variabellen, die daarna door databasewaarden gevuld worden CString strHTMLTitle, strHTMLcmdSubmit, strHTMLcmdCancel, strHTMLMainMessage, strHTMLUser, strHTMLPass, strHTMLsrcStyle ; recordset.GetFieldValue("strHTMLTitle", strHTMLTitle); recordset.GetFieldValue("strHTMLcmdSubmit", strHTMLcmdSubmit); recordset.GetFieldValue("strHTMLcmdCancel", strHTMLcmdCancel); recordset.GetFieldValue("strHTMLMainMessage", strHTMLMainMessage); recordset.GetFieldValue("strHTMLUser", strHTMLUser); recordset.GetFieldValue("strHTMLPass", strHTMLPass); recordset.GetFieldValue("strHTMLsrcStyle", strHTMLsrcStyle); recordset.Close( ); // Header verzenden cout << "header content-type: text/html\n\n"; // De pagina zelf cout << "<html>"; cout << "<head><title>" << strHTMLTitle << "</title><link rel=\"stylesheet\" href=\"" << strHTMLsrcStyle << "\" type=\"text/css\"></head>"; cout << "<body><p class=\"message\">" << strHTMLMainMessage << "<form method=\"post\" action=\"login.exe\">" << "<table border=\"0\" width=\"100%\">" << "<tr><td width=\"50%\"><p class=\"text\">" << strHTMLUser << "<td width=\"50%\"><input type=\"text\" name=\"UserName\" size=\"20\"></tr>" << "<tr><td width=\"50%\"><p class=\"text\">" << strHTMLPass << "<td width=\"50%\"><input type=\"password\" name=\"PassWord\" size=\"20\"></tr>" << "</table><p class=\"buttontext\"><input type=\"submit\" value=\"" << strHTMLcmdSubmit << "\" name=\"cmsSubmit\" class=\"button\">" << "<input type=\"reset\" value=\"" << strHTMLcmdCancel << "\" name=\"cdmCancel\" class=\"button\">" << "</form></body></html>"; return 0; } |
Ik vermoed zelf dat de fout zit in het gedeete van recordset.GetFieldValue, maar ik weet niet wat er fout aan is.
Ik gebruik Microsoft Visual C++ 6.0 (enterprise), met Microsoft Access 97 voor de database.
[ Voor 32% gewijzigd door Verwijderd op 30-06-2003 21:22 ]