首页 \ 问答 \ 从XML文件中获取部分连接字符串(Taking part of connection string from XML file)

从XML文件中获取部分连接字符串(Taking part of connection string from XML file)

我试图根据包含服务器IP地址的XML文件构建一个连接到firebird数据库的连接字符串。

public class globals
{
    static string _serv;
    public static string serv
    {
        get
        {
            return _serv;
        }
        set
        {
            _serv=value;
        }
    }
    public static XmlDocument xmld = new XmlDocument();

    public static void serv_check()
    {
        xmld.Load("ustawienia.xml");
        globals._serv = xmld.GetElementsByTagName("ip").Item(0).InnerText;
        if (globals._serv.Length<=0)
        {
            MessageBox.Show("Nie zdefiniowano servera");
            Server_Deff sdf = new Server_Deff();
            sdf.ShowDialog();               
        }
    }

    static string db_user = "SYSDBA";
    static string db_pass = "masterkey";

    public static string cstr=
                "User=" + globals.db_user + ";" +
                "Password=" + globals.db_pass + ";" +
                "Database=db_kanc;" +
                "DataSource=" + globals.serv +
                "Port=3050;" +
                "Dialect=3;" +
                "Charset=NONE;" +
                "Role=appka;" +
                "Connection lifetime=15;" +
                "Pooling=true;" +
                "MinPoolSize=0;" +
                "MaxPoolSize=50;" +
                "Packet Size=8192;" +
                "ServerType=0";

    public static FbConnection conn = new FbConnection(globals.cstr);
    public static FbTransaction transaction;


    public static void openConnection() // Open database Connection
    {
    conn.Open();
    transaction = conn.BeginTransaction();
}

由于某些原因,既没有在XML文件中定义IP地址也没有在它不是变量serv时,似乎是null。 我可以通过消息框获取值,但不能在连接字符串中获取正确的数据源。

在尝试连接到db时,我收到如下错误:

FirebirdSql.Data.FirebirdClient.FbException: Unable to complete network request to host "Port=3050". ---> FirebirdSql.Data.Common.IscException: Unable to complete network request to host "Port=3050".
   w FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect()
   w FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase(FbConnectionString options)
   w FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
   w FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()

有任何想法吗?


I've tried to build a connection string to a firebird db based on some XML file containing server IP address.

public class globals
{
    static string _serv;
    public static string serv
    {
        get
        {
            return _serv;
        }
        set
        {
            _serv=value;
        }
    }
    public static XmlDocument xmld = new XmlDocument();

    public static void serv_check()
    {
        xmld.Load("ustawienia.xml");
        globals._serv = xmld.GetElementsByTagName("ip").Item(0).InnerText;
        if (globals._serv.Length<=0)
        {
            MessageBox.Show("Nie zdefiniowano servera");
            Server_Deff sdf = new Server_Deff();
            sdf.ShowDialog();               
        }
    }

    static string db_user = "SYSDBA";
    static string db_pass = "masterkey";

    public static string cstr=
                "User=" + globals.db_user + ";" +
                "Password=" + globals.db_pass + ";" +
                "Database=db_kanc;" +
                "DataSource=" + globals.serv +
                "Port=3050;" +
                "Dialect=3;" +
                "Charset=NONE;" +
                "Role=appka;" +
                "Connection lifetime=15;" +
                "Pooling=true;" +
                "MinPoolSize=0;" +
                "MaxPoolSize=50;" +
                "Packet Size=8192;" +
                "ServerType=0";

    public static FbConnection conn = new FbConnection(globals.cstr);
    public static FbTransaction transaction;


    public static void openConnection() // Open database Connection
    {
    conn.Open();
    transaction = conn.BeginTransaction();
}

For some reasons neither when the IP address is defined in XML file nor when it's not variable serv seems to be null. I can get the value through message box but not as a proper Datasource in connection string.

While trying to connect to db I'm getting error like this:

FirebirdSql.Data.FirebirdClient.FbException: Unable to complete network request to host "Port=3050". ---> FirebirdSql.Data.Common.IscException: Unable to complete network request to host "Port=3050".
   w FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect()
   w FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase(FbConnectionString options)
   w FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
   w FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()

Any ideas?


原文:https://stackoverflow.com/questions/27893109
更新时间:2022-06-03 14:06

最满意答案

根据SQLite语法规范, nextfield TEXT应与其他列定义放在一起。 FOREIGN KEYtable-constraint部分有关,应在列定义之后定义:

$statement = $db->query("CREATE TABLE  IF NOT EXISTS appointment (
  id TEXT PRIMARY KEY NOT NULL ,  
  customer TEXT   , 
  nextfield TEXT,
  FOREIGN KEY (customer) REFERENCES customers(id)
)");

According to the SQLite grammar specification, nextfield TEXT should be placed together with the other column definitions. FOREIGN KEY relates to the table-constraint section and should be defined after column definitions:

$statement = $db->query("CREATE TABLE  IF NOT EXISTS appointment (
  id TEXT PRIMARY KEY NOT NULL ,  
  customer TEXT   , 
  nextfield TEXT,
  FOREIGN KEY (customer) REFERENCES customers(id)
)");

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。