小编onu*_*lik的帖子

在postgresql数据库中重命名列名

我想在PostgreSQL数据库中将所有列名重命名为小写我刚刚编写了一个sql函数.下面是代码.

CREATE OR REPLACE FUNCTION update_column_names() RETURNS boolean AS $$
DECLARE 
aRow RECORD;
aRow2 RECORD;
tbl_name TEXT;
col_name TEXT;
new_col_name TEXT; 
BEGIN
    FOR aRow IN select table_name from information_schema.tables where table_schema='public' and table_type='BASE TABLE' LOOP
        SELECT aRow.table_name INTO tbl_name from current_catalog;
        FOR aRow2 IN select column_name from information_schema.columns where table_schema='public' and table_name = aRow.table_name LOOP
            SELECT aRow2.column_name INTO col_name from current_catalog;
            new_col_name:=lower(col_name);
            RAISE NOTICE 'Table name:%',tbl_name;
            RAISE NOTICE 'Column name:%',aRow2.column_name;
            RAISE NOTICE 'New column name:%',new_col_name;
            ALTER TABLE tbl_name RENAME COLUMN …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

17
推荐指数
1
解决办法
3万
查看次数

QGraphicsItemGroup的事件

在我的应用程序中,我想使用QGraphicsItemGroup将项目分组到一个项目中.
我玩了一点但不确定使用它因为当我想要捕捉事件时,事件被合并在一起但我想要处理特定孩子的特定事件.
我怎样才能做到这一点?

c++ events qt qt4 qgraphicsview

12
推荐指数
2
解决办法
3613
查看次数

Qt正则表达式中的土耳其语字符

我想用正则表达式验证QLineEdit的文本.它应该允许从a到z的字符加上A到Z加上土耳其字符(ğüşöçİĞÜŞÖÇ)加上0到9之间的数字.我搜索了我的问题并找到了两个解决方案,但两个都没有为我工作.在一个解决方案中它说"在regexp中包含土耳其字符",在另一个解决方案中它说"使用土耳其字符的unicodes"

下面是两个reqular表达式

QRegExp exp = QRegExp("^[a-zA-Z0-9?ü?öç??Ü?ÖÇ]+$");

QRegExp exp = QRegExp("^[a-zA-Z0-9\u00E7\u011F\u0131\u015F\u00F6\u00FC\u00C7\u011E\u0130\u015E\u00D6\u00DC]+$");
Run Code Online (Sandbox Code Playgroud)

上面的reqular表达式都不能验证名称'İSMAİL'.此外,我试过一个文本只包含土耳其字符('ğüşöçİĞÜŞÖÇ')但它无法验证.当我从两个文本中删除"İ"字符时,可以对其进行验证.我想问题可能与'İ'字符有关.

我该如何解决这个问题?

注意:我们在项目中使用Qt 4.6.3.

regex turkish qt

9
推荐指数
1
解决办法
1万
查看次数

QRectF :: adjusted()如何工作

我的自定义图形项具有(0,-60 60x60)boundingRect.当我调整坐标时

rect.adjusted(-5,-5,5,5)
Run Code Online (Sandbox Code Playgroud)

new boundingRect返回(-5,-65,70x70).我在这里阅读文档,我认为boundingRect应该返回(-5,-65,65x65)
我是否误解了文档?

qt qt4

6
推荐指数
1
解决办法
2285
查看次数

有没有办法打破单元测试的依赖性?

我的A类依赖于B类.这是代码

//declaration
class A
{
  public:
    A(B *b);
    ~A();
    void m1();
  private:
    B *ptr_b;
};

//implementation
A::A(B *b)
{
  ptr_b = b;
}

A::~A()
{
   delete ptr_b;
}

void A::m1()
{
   ptr_b->m2();
}
Run Code Online (Sandbox Code Playgroud)

我想用以下解决方案打破这种依赖性(用于单元测试).这是代码

 class FakeB : public B 
  {    
     public:
       FakeB();
       ~FakeB();
       virtual void m2() = 0; 
  };

 class StubB : public FakeB 
 {   
   public:
      StubB();
      ~StubB();
      void m2(); 
 }
Run Code Online (Sandbox Code Playgroud)

但是当我实例化类A并使用以下代码调用其方法m1()时

A *ptr_a = new A(new StubB);
ptr_a->m1();
Run Code Online (Sandbox Code Playgroud)

方法m1()调用B的方法m2(),因为B的m2()不是虚拟的.B类是来自另一个模块的遗留代码,我不想改变它的代码,但我也不想改变A类的代码.

任何打破这种依赖的解决方案?

c++ polymorphism dependencies break

4
推荐指数
1
解决办法
305
查看次数

使用Active MQ的示例JMS示例

我想学习使用Active MQ的JMS应用程序.
所以下载了apache-activemq-5.5.1并启动了服务器
并找到了示例代码但没有工作.为什么发生以下异常?
注意:我在我的项目中添加了activemq库,库包含org.slf4j模块

例外

 import javax.jms.*;  
 import org.apache.activemq.ActiveMQConnectionFactory;
 import javax.jms.MessageListener;

      //JMS Producer         
       public class JMSProducer {
                public void produce() {
                   String url = "tcp://localhost:61616";
                   ConnectionFactory factory = new ActiveMQConnectionFactory(url);
                     try {
                         Connection connection = factory.createConnection();
                         Session session = connection.createSession(false,
                              Session.AUTO_ACKNOWLEDGE);
                           Topic topic = session.createTopic("TestTopic");
                           MessageProducer producer = session.createProducer(topic);
                          TextMessage msg = session.createTextMessage();
                           msg.setText("Hello JMS World");
                           producer.send(msg);
                   }
                    catch(JMSException exp) {
                     }
                }
           }

  //JMS Consumer
  public class JMSConsumer {
           public void consume() {
               String url = "tcp://localhost:61616";
               ConnectionFactory factory …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms

3
推荐指数
1
解决办法
2万
查看次数