【问题标题】:Android App unable to access Azure databaseAndroid App 无法访问 Azure 数据库
【发布时间】:2021-12-28 01:06:40
【问题描述】:

我的 android 应用程序应该从 Azure SQL 数据库获取数据,但查询一直响应

在此不支持对数据库和/或服务器名称的引用 SQL Server 版本

它只是在服务器端审核日志上声明

“delivery.dbo.upload”中对数据库和/或服务器名称的引用是 此版本的 SQL Server 不支持

代码:

public class CheckDeliveries extends AsyncTask<String, String, String> {

        String z = "";
        Boolean isSuccess = false;
        private ArrayList<ModelU> arrayList;


        //@Override
        protected void onPostExecute(String r) {
            if (z == "ok") {
                GetDeliveries adapter = new GetDeliveries(ViewUpcoming.this, arrayList);
                mRecyclerView.setAdapter(adapter);
            }
            Context context = getApplicationContext();
            CharSequence text = "2 " + z;
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
        }

        @Override
        protected String doInBackground(String... strings)
        {
            try
            {
                con = connectionclass();
                if (con == null)
                {
                    z = "Internet Issue";
                }
                else
                {
                    String query = "SELECT * FROM [delivery].[dbo].[upload]";
                    Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    z = "ok";

                    if(rs.next()) {
                        do {
                            @SuppressLint("Range") ModelU modelu = new ModelU(
                                    "" + rs.getInt(rs.getInt("ID")),
                                    "" + rs.getString(rs.getInt("Name")),
                                    "" + rs.getString(rs.getInt("Address")),
                                    "" + rs.getString(rs.getInt("Status"))
                            );
                            arrayList.add(modelu);
                        }
                        while (rs.next());
                    }
                    else {
                        z = "Invalid Query";
                        isSuccess = false;
                    }
                }
            } catch (Exception ex) {
                isSuccess = false;
                z = ex.getMessage();
            }

            return z;
        }
    }

    @SuppressLint("NewApi")
    public Connection connectionclass() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection connection = null;
        String ConnectionURL = null;
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            ConnectionURL = "jdbc:jtds:sqlserver://2033051.database.windows.net:1433;database=delivery;user=XXXXXXXX;password=XXXXXXXX;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;ssl=request;loginTimeout=30;";
            connection = DriverManager.getConnection(ConnectionURL);
        }
        catch (SQLException se)
        {
            Log.e("error 1", se.getMessage());
        }
        catch (ClassNotFoundException e)
        {
            Log.e("error 2", e.getMessage());
        }
        catch (Exception e)
        {
            Log.e("error 3", e.getMessage());
        }
        return connection;
    }
} 

Toastbox output

Azure database

非常感谢任何帮助!

【问题讨论】:

标签: android azure-sql-database


【解决方案1】:

出现此错误是因为 Azure 不允许更改主数据库。要解决此问题,您需要直接连接到要使用的 Azure 数据库。

删除我们创建的 SQL Azure 链接服务器并创建一个新的。

在常规选项卡的服务器类型部分下,选择其他数据源单选按钮。这一次,链接服务器文本框中的链接服务器名称可以是任何您喜欢的名称(例如 AZURE SQL DATABASE)。在 Provider 下拉框下,选择 Microsoft OLE DB Provider SQL Server 项。在数据源文本框中,输入 SQL Azure 的名称(例如 server.database.windows.net)。要正确创建与 Azure SQL 数据库的链接服务器,最重要的设置是在要为其创建与 Azure SQL 数据库的链接服务器的 Azure SQL 数据库的目录文本框(例如 TestDatabase)中输入名称.否则,如果将此字段留空,我们在尝试获取 Catalogs 文件夹下的表列表时将遇到相同的 40515 错误。

请参考 Marko Zivkovic 的 article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多