teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

プログラムの更新

2020/05/12 04:57

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -14,101 +14,31 @@
14
14
  ### 該当のソースコード
15
15
  Visual Studio 2019 C++
16
16
  ```
17
- //#include "stdafx.h"
18
- //include the below additional libraries
19
- #include <iostream>
20
- #include <windows.h>
21
- #include <sqlext.h>
22
- #include <sqltypes.h>
23
- #include <sql.h>
17
+ #include <stdio.h>
24
- //use the std namespace
25
- using namespace std;
18
+ #include <time.h>
26
19
 
27
20
  int main() {
28
- #define SQL_RESULT_LEN 240
29
- #define SQL_RETURN_CODE_LEN 1000
30
- //define handles and variables
31
- SQLHANDLE sqlConnHandle;
32
- SQLHANDLE sqlStmtHandle;
33
- SQLHANDLE sqlEnvHandle;
34
- SQLWCHAR retconstring[SQL_RETURN_CODE_LEN];
35
- //initializations
36
- sqlConnHandle = NULL;
37
- sqlStmtHandle = NULL;
38
- //allocations
39
- if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle))
40
- goto COMPLETED;
41
- if (SQL_SUCCESS != SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
42
- goto COMPLETED;
43
- if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle))
44
- goto COMPLETED;
45
- //output
21
+ //毎5分に開始
46
- cout << "Attempting connection to SQL Server...";
22
+ time_t jikan;
47
- cout << "\n";
23
+ struct tm imanojikan;
48
- switch (SQLDriverConnect(sqlConnHandle,
49
- NULL,
50
- //(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=localhost, 1433;DATABASE=ONAMBA;UID=ONAMBA",
51
- (SQLWCHAR*)L"DRIVER={SQL Server};SERVER=DESKTOP-T1O410V, 1433;DATABASE=ONAMBA;Trusted=true;",
52
- SQL_NTS,
53
- retconstring,
24
+ errno_t error;
54
- 1024,
55
- NULL,
56
- SQL_DRIVER_NOPROMPT)) {
57
- case SQL_SUCCESS:
58
- cout << "Successfully connected to SQL Server";
59
- cout << "\n";
60
- break;
61
- case SQL_SUCCESS_WITH_INFO:
62
- cout << "Successfully connected to SQL Server";
63
- cout << "\n";
64
- break;
65
- case SQL_INVALID_HANDLE:
66
- cout << "Could not connect to SQL Server";
67
- cout << "\n";
68
- goto COMPLETED;
69
- case SQL_ERROR:
70
- cout << "Could not connect to SQL Server";
71
- cout << "\n";
72
- goto COMPLETED;
73
- default:
74
- break;
75
- }
76
- //if there is a problem connecting then exit application
77
- if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, sqlConnHandle, &sqlStmtHandle))
78
- goto COMPLETED;
79
- //output
80
- cout << "\n";
81
- cout << "Executing T-SQL query...";
82
- cout << "\n";
83
- //if there is a problem executing the query then exit application
84
- //else display query result
85
- if (SQL_SUCCESS != SQLExecDirect(sqlStmtHandle, (SQLWCHAR*)L"SELECT @@VERSION", SQL_NTS)) {
86
- cout << "Error querying SQL Server";
87
- cout << "\n";
88
- goto COMPLETED;
89
- }
90
- else {
91
- //declare output variable and pointer
92
- SQLCHAR sqlVersion[SQL_RESULT_LEN];
93
- SQLINTEGER ptrSqlVersion;
94
- while (SQLFetch(sqlStmtHandle) == SQL_SUCCESS) {
95
- SQLGetData(sqlStmtHandle, 1, SQL_CHAR, sqlVersion, SQL_RESULT_LEN, &ptrSqlVersion);
96
- //display query result
97
- cout << "\nQuery Result:\n\n";
25
+ localtime_s(&imanojikan, &jikan);
98
- cout << sqlVersion << endl;
26
+ cout << imanojikan.tm_min << endl;
99
- }
100
- }
101
- //close connection and free resources
102
- COMPLETED:
103
- SQLFreeHandle(SQL_HANDLE_STMT, sqlStmtHandle);
104
- SQLDisconnect(sqlConnHandle);
105
- SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle);
106
- SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle);
107
- //pause the console window - exit when key is pressed
108
- cout << "\nPress any key to exit...";
27
+ int mod = imanojikan.tm_min % 5; //5分の余り値を求める
109
- getchar();
110
- }
111
28
 
29
+ //std::cout << "0分目のパターン決定\n";
30
+ //時刻を1秒ごとに計測→5分刻み+1分で開始
31
+ //std::cout << "1分目のパターン決定\n";
32
+ //時刻を1秒ごとに計測→5分刻み+2分で開始
33
+ //std::cout << "2分目のパターン決定\n";
34
+ //時刻を1秒ごとに計測→5分刻み+3分で開始
35
+ //std::cout << "3分目のパターン決定\n";
36
+ //時刻を1秒ごとに計測→5分刻み+4分で開始
37
+ //std::cout << "4分目のパターン決定\n";
38
+
39
+ return 0;
40
+ }
41
+
112
42
  ```
113
43
 
114
44
  ### 試したこと

5

プログラムの更新

2020/05/12 04:57

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -14,33 +14,101 @@
14
14
  ### 該当のソースコード
15
15
  Visual Studio 2019 C++
16
16
  ```
17
+ //#include "stdafx.h"
18
+ //include the below additional libraries
19
+ #include <iostream>
20
+ #include <windows.h>
21
+ #include <sqlext.h>
22
+ #include <sqltypes.h>
17
- #include <stdio.h>
23
+ #include <sql.h>
24
+ //use the std namespace
18
- #include <time.h>
25
+ using namespace std;
19
26
 
20
- int main() {
27
+ int main() {
28
+ #define SQL_RESULT_LEN 240
29
+ #define SQL_RETURN_CODE_LEN 1000
30
+ //define handles and variables
31
+ SQLHANDLE sqlConnHandle;
32
+ SQLHANDLE sqlStmtHandle;
33
+ SQLHANDLE sqlEnvHandle;
34
+ SQLWCHAR retconstring[SQL_RETURN_CODE_LEN];
35
+ //initializations
36
+ sqlConnHandle = NULL;
37
+ sqlStmtHandle = NULL;
38
+ //allocations
39
+ if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle))
40
+ goto COMPLETED;
41
+ if (SQL_SUCCESS != SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
42
+ goto COMPLETED;
43
+ if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle))
44
+ goto COMPLETED;
21
- //毎5分に開始
45
+ //output
22
- time_t jikan;
23
- struct tm imanojikan;
24
- errno_t error;
25
- localtime_s(&imanojikan, &jikan);
26
- cout << imanojikan.tm_min << endl;
46
+ cout << "Attempting connection to SQL Server...";
27
- int mod = imanojikan.tm_min % 5; //5分の余り値を求める
28
-
29
- //std::cout << "0分目のパターン決定\n";
47
+ cout << "\n";
30
- //時刻を1秒ごとに計測→5分刻み+1分で開始
48
+ switch (SQLDriverConnect(sqlConnHandle,
49
+ NULL,
50
+ //(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=localhost, 1433;DATABASE=ONAMBA;UID=ONAMBA",
51
+ (SQLWCHAR*)L"DRIVER={SQL Server};SERVER=DESKTOP-T1O410V, 1433;DATABASE=ONAMBA;Trusted=true;",
52
+ SQL_NTS,
53
+ retconstring,
54
+ 1024,
55
+ NULL,
56
+ SQL_DRIVER_NOPROMPT)) {
57
+ case SQL_SUCCESS:
58
+ cout << "Successfully connected to SQL Server";
31
- //std::cout << "1分目のパターン決定\n";
59
+ cout << "\n";
60
+ break;
32
- //時刻を1秒ごとに計測→5分刻み+2分で開始
61
+ case SQL_SUCCESS_WITH_INFO:
62
+ cout << "Successfully connected to SQL Server";
33
- //std::cout << "2分目のパターン決定\n";
63
+ cout << "\n";
64
+ break;
34
- //時刻を1秒ごとに計測→5分刻み+3分で開始
65
+ case SQL_INVALID_HANDLE:
66
+ cout << "Could not connect to SQL Server";
35
- //std::cout << "3分目のパターン決定\n";
67
+ cout << "\n";
68
+ goto COMPLETED;
69
+ case SQL_ERROR:
36
- //時刻を1秒ごとに計測→5分刻み+4分で開始
70
+ cout << "Could not connect to SQL Server";
37
- //std::cout << "4分目のパターン決定\n";
71
+ cout << "\n";
38
-
72
+ goto COMPLETED;
73
+ default:
39
- return 0;
74
+ break;
40
75
  }
76
+ //if there is a problem connecting then exit application
77
+ if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, sqlConnHandle, &sqlStmtHandle))
78
+ goto COMPLETED;
79
+ //output
80
+ cout << "\n";
81
+ cout << "Executing T-SQL query...";
82
+ cout << "\n";
83
+ //if there is a problem executing the query then exit application
84
+ //else display query result
85
+ if (SQL_SUCCESS != SQLExecDirect(sqlStmtHandle, (SQLWCHAR*)L"SELECT @@VERSION", SQL_NTS)) {
86
+ cout << "Error querying SQL Server";
87
+ cout << "\n";
88
+ goto COMPLETED;
89
+ }
90
+ else {
91
+ //declare output variable and pointer
92
+ SQLCHAR sqlVersion[SQL_RESULT_LEN];
93
+ SQLINTEGER ptrSqlVersion;
94
+ while (SQLFetch(sqlStmtHandle) == SQL_SUCCESS) {
95
+ SQLGetData(sqlStmtHandle, 1, SQL_CHAR, sqlVersion, SQL_RESULT_LEN, &ptrSqlVersion);
96
+ //display query result
97
+ cout << "\nQuery Result:\n\n";
98
+ cout << sqlVersion << endl;
99
+ }
100
+ }
101
+ //close connection and free resources
102
+ COMPLETED:
103
+ SQLFreeHandle(SQL_HANDLE_STMT, sqlStmtHandle);
104
+ SQLDisconnect(sqlConnHandle);
105
+ SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle);
106
+ SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle);
107
+ //pause the console window - exit when key is pressed
108
+ cout << "\nPress any key to exit...";
109
+ getchar();
110
+ }
41
111
 
42
- yasu2711
43
-
44
112
  ```
45
113
 
46
114
  ### 試したこと

4

プログラムの変更

2020/05/12 04:55

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -14,9 +14,18 @@
14
14
  ### 該当のソースコード
15
15
  Visual Studio 2019 C++
16
16
  ```
17
- #include <iostream>
17
+ #include <stdio.h>
18
+ #include <time.h>
18
19
 
19
- int main() {
20
+ int main() {
21
+ //毎5分に開始
22
+ time_t jikan;
23
+ struct tm imanojikan;
24
+ errno_t error;
25
+ localtime_s(&imanojikan, &jikan);
26
+ cout << imanojikan.tm_min << endl;
27
+ int mod = imanojikan.tm_min % 5; //5分の余り値を求める
28
+
20
29
  //std::cout << "0分目のパターン決定\n";
21
30
  //時刻を1秒ごとに計測→5分刻み+1分で開始
22
31
  //std::cout << "1分目のパターン決定\n";
@@ -25,8 +34,13 @@
25
34
  //時刻を1秒ごとに計測→5分刻み+3分で開始
26
35
  //std::cout << "3分目のパターン決定\n";
27
36
  //時刻を1秒ごとに計測→5分刻み+4分で開始
28
- //std::cout << "4分目のパターン決定\n"
37
+ //std::cout << "4分目のパターン決定\n";
38
+
39
+ return 0;
29
- }
40
+ }
41
+
42
+ yasu2711
43
+
30
44
  ```
31
45
 
32
46
  ### 試したこと

3

プログラムを元に戻しました。

2020/05/09 05:35

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -15,18 +15,17 @@
15
15
  Visual Studio 2019 C++
16
16
  ```
17
17
  #include <iostream>
18
- #include <chrono>
19
- #include <ctime>
20
18
 
21
19
  int main() {
22
- auto now = std::chrono::system_clock::now();
23
- std::time_t tim = std::chrono::system_clock::to_time_t(now);
24
- std::tm tm;
25
- // vc++ では 戻り値が 0 なら成功。 (POSIXだと non-0 が成功。なんとかならんもんかね)
20
+ //std::cout << "0分目のパターン決定\n";
21
+ //時刻を1秒ごとに計測→5分刻み+1分で開始
22
+ //std::cout << "1分目のパターン決定\n";
23
+ //時刻を1秒ごとに計測→5分刻み+2分で開始
24
+ //std::cout << "2分目のパターン決定\n";
25
+ //時刻を1秒ごとに計測→5分刻み+3分で開始
26
+ //std::cout << "3分目のパターン決定\n";
27
+ //時刻を1秒ごとに計測→5分刻み+4分で開始
26
- if (localtime_s(&tm, &tim) == 0) {
28
+ //std::cout << "4分目のパターン決定\n"
27
- std::cout << tm.tm_hour << ':' << tm.tm_min << ':' << tm.tm_sec << std::endl;
28
- }
29
- int sabun = 5 - tm.tm_min % 5;
30
29
  }
31
30
  ```
32
31
 

2

プログラムを元に戻しました。

2020/05/08 02:57

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,6 @@
27
27
  std::cout << tm.tm_hour << ':' << tm.tm_min << ':' << tm.tm_sec << std::endl;
28
28
  }
29
29
  int sabun = 5 - tm.tm_min % 5;
30
-
31
30
  }
32
31
  ```
33
32
 

1

プログラムを更新しました。

2020/05/08 01:59

投稿

yasu2711
yasu2711

スコア7

title CHANGED
File without changes
body CHANGED
@@ -15,32 +15,19 @@
15
15
  Visual Studio 2019 C++
16
16
  ```
17
17
  #include <iostream>
18
- #include <stdio.h>
18
+ #include <chrono>
19
- #include <time.h>
19
+ #include <ctime>
20
- using namespace std;
21
20
 
22
21
  int main() {
23
- //毎5分に開始
24
- time_t jikan;
22
+ auto now = std::chrono::system_clock::now();
23
+ std::time_t tim = std::chrono::system_clock::to_time_t(now);
25
- struct tm imanojikan;
24
+ std::tm tm;
26
- errno_t error;
25
+ // vc++ では 戻り値が 0 なら成功。 (POSIXだと non-0 が成功。なんとかならんもんかね)
27
- localtime_s(&imanojikan, &jikan);
26
+ if (localtime_s(&tm, &tim) == 0) {
27
+ std::cout << tm.tm_hour << ':' << tm.tm_min << ':' << tm.tm_sec << std::endl;
28
+ }
28
- cout << imanojikan.tm_min << endl;
29
+ int sabun = 5 - tm.tm_min % 5;
29
- int mod = imanojikan.tm_min % 5; //5分の余り値を求める
30
30
 
31
-
32
- //std::cout << "0分目のパターン決定\n";
33
- //時刻を1秒ごとに計測→5分刻み+1分で開始
34
- //std::cout << "1分目のパターン決定\n";
35
- //時刻を1秒ごとに計測→5分刻み+2分で開始
36
- //std::cout << "2分目のパターン決定\n";
37
- //時刻を1秒ごとに計測→5分刻み+3分で開始
38
- //std::cout << "3分目のパターン決定\n";
39
- //時刻を1秒ごとに計測→5分刻み+4分で開始
40
- //std::cout << "4分目のパターン決定\n";
41
-
42
- return 0;
43
-
44
31
  }
45
32
  ```
46
33