标签 数据库 下的文章

摘自:https://mp.weixin.qq.com/s?__biz=MjM5MzA1MTczMg==&mid=2651545831&idx=3&sn=37a277b4dae212eab6e7e55b485be81e&chksm=bd6325dc8a14accaf80f66c5edd21ae4a3022d52c121bde2e3346b2f7b71f5d8dba867ebf520&mpshare=1&scene=23&srcid=0627fHaHUs9Lzk2ga2pvguAO#rd
2017-06-01 智慧工厂

为什么上了ERP,效率反而更低?

  一说ERP,有人会说出名人名言“上ERP是找死,不上ERP是等死”。既然如此,为什么人们对ERP依然趋之若鹜呢?你可以说因为没有人愿意等死。那么有人愿意找死吗?显然不是!如果把前面的名言修改一下:“运用错了,上ERP是找死;管理落后,不上ERP是等死”。这样一来,我想人们对ERP的误会就会大大减少。

  我在企业调研过程中,经常听到下面的抱怨:

  我们企业上了ERP,统计增加了四人,会计增加了二名,统计结果反而比以前晚一周才出来。

  我们公司仓库入库流程特别慢,很多信息滞后,一周或十天才能出来信息。手工入库当天可完成,ERP系统上来后反而慢了很多。

  我们生产系统每天领材料领用品要几次,可是高管们一天只审核一次。中间变化不能及时处理,影响生产。

  我们公司应付账款起用ERP系统,前面有七八道流程,审核环节太多了。最麻烦的是老板出差了,ERP运行就中止了。

  ……

  上了ERP,效率反而更低,相信不是一家企业遇到的难题。

  为什么上了ERP,效率反而更低?我从众多企业失败的案例中总结发现:不少企业ERP系统本身就是落后理念与低效方式的集成!

  大家想想看:重复审核、层层把关真的是管控企业的灵丹妙药吗?大家有没有想过,第一道关口没有把住,也就是说做事的人没有做好,后面的审核签字有意义吗?如果第一人一次把事做对,而省去后面的重复环节,这将为企业节省多少人工成本、争取多少市场机会?

  笔者在众多企业咨询服务的实践中发现:重复审核、重复签字、层层请示、层层汇报、无事生非、漫长的等待、议而不决的会议是企业管理最大的黑洞,我们称之为流程黑洞。凡是我们习以为常重复进行而不给企业带来价值的活动就是流程黑洞。流程黑洞在不知不觉中耗费了员工的时间、消蚀了公司的资源、增加了管理成本、吞噬了企业的利润!

  可是,我们太多的企业却把这些落后的层层把关、重复签字流程沉淀到了ERP系统!这样的系统它如何提高工作效率?如何提升员工工作积极性?如何为企业创造更多的价值?滞后的市场反应如何让顾客满意?

  我要大声疾呼:不是ERP不好,而是我们运用错了,我们把落后的管理方式植入了系统!如果想要系统发挥作用,就必须把优化后的工作方式融入系统。

640.jpg

目的:打开二级域名分别指向相应的odoo8.0中的数据库,如,打开odoo1.odoo123.com指向数据库odoo1,打开odoo2.odoo123.com指向数据库odoo2,打开odoo3.odoo123.com指向数据库odoo3。其中odoo1用于自己练习用odoo来做测试用,odoo2用于做自己的个人财务账,odoo3用于做网店账。

步骤:

一、修改etc\odoo\odoo-server.conf(或者可能是openerp-server.conf这个文件)中的

dbfilter = ^%d; 过滤要显示的数据库名称(推荐^%d默认.*通配)

二、在lnmp中增加三个vhost:sudo lnmp vhost add分别做三次,完成;

三、修改usr\local\nginx\conf\vhost\目录下的三个配置文件见附件;

四、到域名管理中增加三条A记录:odoo1.odoo123.com、odoo2.odoo123.com、odoo3.odoo123.com;本机测试可直接修改hosts文件(需要root权限)。

重启lnmp和odoo8.0。顺利实现!

The end.
odoo查询全部数据

odoo1.odoo123.com.conf

odoo2.odoo123.com.conf

odoo3.odoo123.com.conf

来自:https://github.com/leangjia/ez_SQL_help-zh_cn

附:
ez_sql_help_zh_cn.htm

DEMO.PHP 演示示例代码:

<?php

    /**********************************************************************
    *  ezSQL initialisation for mySQL
    */

    // Include ezSQL core
    include_once "../shared/ez_sql_core.php";

    // Include ezSQL database specific component
    include_once "ez_sql_mysql.php";

    // Initialise database object and establish a connection
    // at the same time - db_user / db_password / db_name / db_host
    $db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

    /**********************************************************************
    *  ezSQL demo for mySQL database
    */

    // Demo of getting a single variable from the db
    // (and using abstracted function sysdate)
    $current_time = $db->get_var("SELECT " . $db->sysdate());
    print "ezSQL demo for mySQL database run @ $current_time";

    // Print out last query and results..
    $db->debug();

    // Get list of tables from current database..
    $my_tables = $db->get_results("SHOW TABLES",ARRAY_N);

    // Print out last query and results..
    $db->debug();

    // Loop through each row of results..
    foreach ( $my_tables as $table )
    {
        // Get results of DESC table..
        $db->get_results("DESC $table[0]");

        // Print out last query and results..
        $db->debug();
    }

?>

----------以下转载----------

操作MySQL,使用ezSQL,简单而方便

ezSQL官方下载地址:http://justinvincent.com/ezsql

使用示例:

事先 include once <ez_sql.php>;

include once <ez_sql.php>;

取数值:

$var = $db->get_var("SELECT count(*) FROM users");


取对象:

$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");


取数组:

$users = $db->get_results("SELECT name, email FROM users");
foreach ( $users as $user )
{
    // 使用对象语法
    echo $user->name;
    echo $user->email;
}

可以看出,其实函数返回值为二维数组,经foreach分解后,$user为每条记录的内容,可直接用$user->字段名的方式访问。

get_results()还有另一种调用方式:

// Extract results into the array $dogs (and evaluate if there are any results at the same time)..
if ( $dogs = $db->get_results(“SELECT breed, owner, name FROM dogs”, ARRAY_A) )
{
            // Loop through the resulting array on the index $dogs[n]
            foreach ( $dogs as $dog_detail )
            {
 
                        // Loop through the resulting array
                        foreach ( $dogs_detail as $key => $val )
                        {
                                    // Access and format data using $key and $val pairs..
                                    echo “<b>” . ucfirst($key) . “</b>: $val<br>”;
                        }
 
                        // Do a P between dogs..
                        echo “<p>”;
            }
}
else
{
            // If no users were found then if evaluates to false..
            echo “No dogs found.”;
}
 

输出结果:

Output:
Breed: Boxer
Owner: Amy
Name: Tyson

Breed: Labrador
Owner: Lee
Name: Henry

Breed: Dachshund
Owner: Mary
Name: Jasmine


执行Insert操作:

$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'duuge','duuge@duuge.com')");


调试信息

// Display last query and all associated results

$db->debug();

四种方法:

  1. bool $db->query(query)
  2. var $db->get_var(query)
  3. mixed $db->get_row(query)
  4. mixed $db->get_results(query)

ezSQL functions

$db->get_results -- get multiple row result set from the database (or previously cached results)

$db->get_row -- get one row from the database (or previously cached results)

$db->get_col -- get one column from query (or previously cached results) based on column offset

$db->get_var -- get one variable, from one row, from the database (or previously cached results)

$db->query -- send a query to the database (and if any results, cache them)

$db->debug -- print last sql query and returned results (if any)

$db->vardump -- print the contents and structure of any variable

$db->select -- select a new database to work with

$db->get_col_info -- get information about one or all columns such as column name or type

$db->hide_errors -- turn ezSQL error output to browser off

$db->show_errors -- turn ezSQL error output to browser on

$db->escape -- Format a string correctly to stop accidental mal formed queries under all PHP conditions

$db = new db -- Initiate new db object.


ezSQL variables

$db->num_rows – Number of rows that were returned (by the database) for the last query (if any)

$db->insert_id -- ID generated from the AUTO_INCRIMENT of the previous INSERT operation (if any)

$db->rows_affected -- Number of rows affected (in the database) by the last INSERT, UPDATE or DELETE (if any)

$db->num_queries -- Keeps track of exactly how many 'real' (not cached) queries were executed during the lifetime of the current script

$db->debug_all – If set to true (i.e. $db->debug_all = true;) Then it will print out ALL queries and ALL results of your script.

$db->cache_dir – Path to mySQL caching dir.

$db->cache_queries – Boolean flag (see mysql/disk_cache_example.php)

$db->cache_inserts – Boolean flag (see mysql/disk_cache_example.php)

$db->use_disk_cache – Boolean flag (see mysql/disk_cache_example.php)

$db->cache_timeout – Number in hours (see mysql/disk_cache_example.php)



EOF


1、备份localhost本机中的demo数据库到/mnt/database_bak目录下文件名为demo无后缀:

pg_dump --host localhost --port 5432 --username "postgres" --format custom --blobs --verbose --file "/mnt/database_bak/demo" "demo"

2、还原localhost本机中的demo数据库到/mnt/database_bak目录下文件名为demo无后缀:

pg_restore --host localhost --port 5432 --username "postgres" --dbname "demo" --verbose "/mnt/database_bak/demo"