小编C. *_*yer的帖子

通过 JDBC 使用 View-over-View DDL “拒绝用户的任何命令”

我在这里遇到了一个非常奇怪的问题。我们使用 Pentaho Kettle 来管理我们的数据库架构(它反过来使用 MySQL JDBC mysql-connector-java-5.1.17.jar)。当尝试创建包含另一个视图(在本例中为接口)的视图时,我们得到:

2012/06/26 11:46:55 - SQL2 - ERROR : Couldn't execute SQL: CREATE OR REPLACE VIEW `test_delete2` as select  * from interfaces
2012/06/26 11:46:55 - SQL2 - ERROR : ANY command denied to user 'ncim'@'xxx.xxx.xxx..xx' for table '/var/mysql/mysql2018/tmp/#sql_4e67_0'
Run Code Online (Sandbox Code Playgroud)

但是,使用相同的语句和用户,但通过 mysql 命令行客户端,可以按预期工作。此外,使用 JDBC 在普通表上创建视图也有效。

这是服务器端的 Solaris 10 上的 MariaDB 5.2.10,但我们也遇到了与 Oracle MySQL 相同的问题。

任何可能导致这种情况的好主意?

PS:我知道在视图上创建视图并不是最好的主意,但目前假设在这种情况下无法避免。

mysql jdbc view

7
推荐指数
1
解决办法
7638
查看次数

angular-ui bootstrap accordion:我如何正确地观察is-open属性?

我正在尝试在特定的手风琴节开始时执行动作.我的用例几乎与这个问题相同,只是我使用的是静态定义的而不是ng-each.

不知何故,当打开状态发生变化时,我无法触发$ watch,任何人都可以告诉我为什么这不起作用:

视图:

  <accordion close-others="false">
   <accordion-group heading="group1" is-open="acc1open">
    content 1
   </accordion-group>    
   <accordion-group heading="group2" is-open="acc2open">
    content 2
   </accordion-group>  
  </accordion>  
Run Code Online (Sandbox Code Playgroud)

控制器:

  $scope.acc1open = false;
  $scope.acc2open = true;

  $scope.$watch('acc1open', function(){
      console.log("watch acc1:" +$scope.acc1open);
  }, true);
Run Code Online (Sandbox Code Playgroud)

这是一个吸烟者:

http://plnkr.co/edit/Ycms81?p=preview

它在页面加载时一次打印"watch acc1:false",但在打开手风琴组时则不打印.

angularjs angular-ui angular-ui-bootstrap

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

Grails:如何根据域ID类型动态更改脚手架代码中的方法签名?

我正在尝试在遗留数据库之上构建grails(2.1.0)应用程序.它有很多桌子,我非常喜欢只使用动态脚手架.问题是某些表有一个字符串作为主键,但src/templates/scaffolding/Controller.groovy中的模板代码例如show是

def show(Long id) {
    def ${propertyName} = ${className}.get(id)
    if (!${propertyName}) {
        flash.message = message(code: 'default.not.found.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), id])
        redirect(action: "list")
        return
    }

    [${propertyName}: ${propertyName}]
}
Run Code Online (Sandbox Code Playgroud)

对于字符串键,这似乎将字符串转换为null,并且get因错误而失败$Domain not found with id null.

如果我运行生成控制器并将签名更改为def show(String id),它将按预期工作.

那么,有没有办法在"动态脚手架时间"检查域类并相应地编写方法?

grails scaffolding

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

如何从$ resource.save()触发模型更新?

我正在尝试构建我的第一个角度应用程序,我可能需要一些帮助.

我正在使用标准的$ resource操作访问REST服务:

angular.module('wtrack', ['ngResource']).
    factory('WtrackAPI', function($resource) {
      var WtrackAPI = $resource('http://hostname/wtrack/api/w/:id');
      return WtrackAPI;
    });
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

function ListCtrl($scope, $timeout, WtrackAPI){

    $scope.wdata = WtrackAPI.query(); // a list of objects displayed in my view

    $scope.addEntry = function() {   // adding an object to the list
        console.log("Adding Entry");
        var entry = {day: $scope.wdata.day, value: $scope.wdata.value};
        WtrackAPI.save(entry, 
                          function(){console.log("WTF do I need to do here to rerun WtrackAPI.query()");});
    };

}
Run Code Online (Sandbox Code Playgroud)

我想要做的基本上是$scope.wdata = WtrackAPI.query();在save()完成后再次执行更新我的模型.我怀疑角度方式只是$scope.wdata.push(entry),但在这种情况下,数据库将一些数据添加到带有触发器的条目并进行一些复杂的排序,所以我真的想要使用查询来往返并重新加载整个列表.我怎样才能做到这一点?只是调用$scope.wdata = WtrackAPI.query();save回调不起作用,因为$ scope显然不存在.我用$ emit和$ rootScope等尝试了一些其他的东西,但所有这些让我真的很困惑.所以,请问,任何人都可以给我一个暗示,正确的方法是什么?

angularjs

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