SqlServer数据库报 errorCode 4060, state S0001错误

对于SqlServer数据库的使用,需要进行如下配置

首先以windows身份进入SqlServer

修改sa用户的登录密码

右键选择sa——属性——修改密码

 服务器角色选择

用户角色映射

 

 状态都选择启用

 第二大步,右键选择数据库,选择属性,设置如下

 关闭Microsoft SQL Server Management studio工具

windows+R 打开运行命令窗口,输入services.msc,打开服务列表

 重启sqlserver服务

再次打开Microsoft SQL Server Management studio工具,以SQL Server身份登录,输入我们刚才设定的密码

 

第三大步:查看SQLServer数据库的端口1433是否启用

打开SQLServer 2022配置管理器 

右键TCP/IP——选择属性 

排查完整以上这些,如果还是报错如下

2023-06-22 11:56:20.396 ERROR 19200 --- [reate-323031574] com.alibaba.druid.pool.DruidDataSource   : create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=web_database?entype=false;trustServerCertificate=true;integratedSecurity=false;, errorCode 4060, state S0001

查看SQLServer与druid数据源的驱动不兼容,改成如下即可

<!-- 引入druid依赖 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.5</version>
</dependency>

<!-- 引入sqlserver依赖 -->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>9.2.1.jre8</version>
</dependency>

再次访问接口,运行成功

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是获取 SQL Server 数据库中表的列名的 C++ 实现代码: ```cpp #include <windows.h> #include <sql.h> #include <sqlext.h> #include <iostream> using namespace std; void show_error(unsigned int handle_type, const SQLHANDLE& handle) { SQLCHAR sql_state[1024]; SQLCHAR message[1024]; SQLINTEGER sql_code; SQLSMALLINT length; SQLGetDiagRec(handle_type, handle, 1, sql_state, &sql_code, message, 1024, &length); cout << "SQL Error " << sql_code << " : " << message << endl; } int main() { SQLHANDLE sql_env_handle = NULL; SQLHANDLE sql_conn_handle = NULL; SQLHANDLE sql_stmt_handle = NULL; SQLRETURN ret_code; SQLCHAR* db_name = (SQLCHAR*)"your_database_name"; SQLCHAR* uid = (SQLCHAR*)"your_username"; SQLCHAR* pwd = (SQLCHAR*)"your_password"; SQLCHAR* query = (SQLCHAR*)"SELECT * FROM your_table_name"; ret_code = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sql_env_handle); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_ENV, sql_env_handle); return -1; } ret_code = SQLSetEnvAttr(sql_env_handle, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_ENV, sql_env_handle); return -1; } ret_code = SQLAllocHandle(SQL_HANDLE_DBC, sql_env_handle, &sql_conn_handle); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_ENV, sql_conn_handle); return -1; } ret_code = SQLConnect(sql_conn_handle, db_name, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_DBC, sql_conn_handle); return -1; } ret_code = SQLAllocHandle(SQL_HANDLE_STMT, sql_conn_handle, &sql_stmt_handle); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_STMT, sql_stmt_handle); return -1; } ret_code = SQLExecDirect(sql_stmt_handle, query, SQL_NTS); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_STMT, sql_stmt_handle); return -1; } SQLSMALLINT column_count; SQLCHAR column_name[256]; SQLSMALLINT column_name_length; SQLSMALLINT column_type; SQLULEN column_size; SQLSMALLINT column_decimal_digits; SQLSMALLINT column_nullable; ret_code = SQLNumResultCols(sql_stmt_handle, &column_count); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_STMT, sql_stmt_handle); return -1; } cout << "Column count: " << column_count << endl; for (int i = 1; i <= column_count; i++) { ret_code = SQLDescribeCol(sql_stmt_handle, i, column_name, sizeof(column_name), &column_name_length, &column_type, &column_size, &column_decimal_digits, &column_nullable); if (ret_code != SQL_SUCCESS && ret_code != SQL_SUCCESS_WITH_INFO) { show_error(SQL_HANDLE_STMT, sql_stmt_handle); return -1; } cout << "Column " << i << ": " << column_name << endl; } SQLFreeHandle(SQL_HANDLE_STMT, sql_stmt_handle); SQLDisconnect(sql_conn_handle); SQLFreeHandle(SQL_HANDLE_DBC, sql_conn_handle); SQLFreeHandle(SQL_HANDLE_ENV, sql_env_handle); return 0; } ``` 在上面的代码中,我们使用 SQLDescribeCol 函数来获取表的列名。这个函数需要传入一个表的列索引,然后返回该列的一些信息,包括列名(column_name)。我们可以在循环中依次调用 SQLDescribeCol 函数来获取所有的列名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值