隐函数数据库
⑴ 如何隐藏excel表中的函数
1、单击行1与列A相交的空白处,选定整个工作表,再点击右键,选择“设置单元格格式”
2、在设置单元格格式的对话框中,选择“保护”,再将“锁定”和“隐藏”前面的勾去掉,再点击“确定”。
6、在保护工作表对话框中,输入保护密码,并将(保护工作表并锁定单元格内容;选定锁定单元格;选定未锁定的单元格)三项前面勾选上,然后点击“确定”
7、再次输入保护密码,点击“确定”,设置完成。
8、看看设置效果,鼠标再次点击XX,可以看到状态栏一片空白,公式不见了。如果想要修改编辑公式,只要重复刚才的几个简单步骤即可。
注意事项
保护密码一旦丢失或遗忘,则无法找回,建议妥善保存。
特别提醒:密码区分大小写,千万别输错了,相信对你有一定的帮助!
⑵ sql 不允许数据库类型varcher到varbinary的隐式转换,请使用convert函数
SQL 不允许由字符串类型 向2进制类型转换;
可以做如下转换:
SELECT CONVERT(varbinary(10),'abc')
⑶ SQl数据库中包是什么
一、什么是PL/SQL包
包就是一个把各种逻辑相关的类型、常量、变量、异常和子程序组合在一起的模式对象。包通常由两个部分组成:包说明和包体,但有时包体是不需要的。说明(简写为spec)是应用程序接口;它声明了可用的类型、变量、常量、异常、游标和子程序,包体部分完全定义游标和子程序,并对说明中的内容加以实现。
如下例所示,我们可以认为说明部分是一个可选接口,而包体是一个"黑盒"。我们可以调试、增强或替换一个包体而不同改变接口(包说明)。
我们可以从SQL*Plus中使用CREATE PACKAGE语句来创建一个包。语法如下:
CREATE [OR REPLACE] PACKAGE package_name
[AUTHID {CURRENT_USER | DEFINER}]
{IS | AS}
[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition ...]
[record_type_definition ...]
[subtype_definition ...]
[collection_declaration ...]
[constant_declaration ...]
[exception_declaration ...]
[object_declaration ...]
[record_declaration ...]
[variable_declaration ...]
[cursor_spec ...]
[function_spec ...]
[procere_spec ...]
[call_spec ...]
[PRAGMA RESTRICT_REFERENCES(assertions) ...]
END [package_name];
[CREATE [OR REPLACE] PACKAGE BODY package_name {IS | AS}
[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition ...]
[record_type_definition ...]
[subtype_definition ...]
[collection_declaration ...]
[constant_declaration ...]
[exception_declaration ...]
[object_declaration ...]
[record_declaration ...]
[variable_declaration ...]
[cursor_body ...]
[function_spec ...]
[procere_spec ...]
[call_spec ...]
[BEGIN
sequence_of_statements]
END [package_name];]
在说明部分声明的内容都是公有的,对应用程序是可见的。我们必须在所有的其他内容(除了用于为一个特殊的函数命名的编译指示;这样的编译指示必须跟在函数说明之后)声明之后才可以声明子程序。
包体中的内容有私有的,它实现了说明部分定义的细节内容,并且对应用程序是不可见的。紧跟着包体声明部分的是一个可选的初始化部分,它用于初始化包中的变量等。
AUTHID语句决定了是否是所有的打包子程序都按定义者权限(默认)或调用者权限执行,其中涉及到的模式对象是在定义者的模式中解析还是在调用者的模式中解析。
一个调用说明能让我们在Oracle数据词典中发布一个Java方法或外部C函数。调用说明靠把程序的名称、参数类型和返回类型映射到它们的SQL副本(SQL counterpart)中来发布程序。
1、PL/SQL包举例
在下面的例子中,我们把一个记录类型、游标和两个employment过程进行打包。要注意,过程hire_employee使用数据库序列empno_seq和函数SYSDATE分别插入到字段雇员编号和雇佣日期。
CREATE OR REPLACE PACKAGE emp_actions AS -- spec
TYPE emprectyp IS RECORD(
emp_id INT,
salary REAL
);
CURSOR desc_salary RETURN emprectyp;
PROCEDURE hire_employee(
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER
);
PROCEDURE fire_employee(emp_id NUMBER);
END emp_actions;
CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body
CURSOR desc_salary RETURN emprectyp IS
SELECT empno, sal
FROM emp
ORDER BY sal DESC;
PROCEDURE hire_employee(
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER
) IS
BEGIN
INSERT INTO emp
VALUES (empno_seq.NEXTVAL,
ename,
job,
mgr,
SYSDATE,
sal,
comm,
deptno);
END hire_employee;
PROCEDURE fire_employee(emp_id NUMBER) IS
BEGIN
DELETE FROM emp
WHERE empno = emp_id;
END fire_employee;
END emp_actions;
只有在包说明部分的声明内容对应用程序才是可见可访问的;包体的详细实现是不可见不可访问的。所以,我们可以在不重新编译调用程序的前提下修改包体(实现)。
二、PL/SQL包的优点
包提供了几个优点:模块化、方便应用程序设计、信息隐藏、附加功能和良好的性能。
模块化
包能让我们把逻辑相关的类型、常量、变量、异常和子程序等放到一个命名的PL/SQL模块中。每一个包都容易理解,包与包之间接口简单、清晰。这将有助于程序开发。
轻松的程序设计
设计应用程序时,我们首先要确定的是包说明中的接口信息。我们可以在没有包体的条件下编写并编译说明部分。然后引用该包的存储子程序也会被编译。在完成整个应用程序之前,我们是不需要完全实现包体部分的。
信息隐藏
有了包,我们就可以指定哪些类型、常量、变量、异常和子程序等是公有(可见和可访问)或私有(隐藏和不可访问)。例如,如果一个包里包含了四个子程序,其中三个是公有的一个是私有的。包就会隐藏私有子程序的实现,这样的话,如果实现内容发生改变,受到影响的只有包本身(不是我们的应用程序)。同样,对用户隐藏实现细节也能保证包的完整性。
附加功能
打包公有变量和游标在一个会话期会一直存在。所以,它们可以被当前环境下的所有子程序共享。并且它们允许我们跨事务来维护数据而不用把它保存在数据库中。
良好的性能
在我们首次调用打包子程序时,整个包就会被加载到内存中。所以,以后调用包中的相关子程序时,就不需要再次读取磁盘了。包能阻塞级联依赖,这样就能避免不必要的编译。例如,如果我们改变打包函数的实现,Oracle不需要重新编译调用子程序,因为它们并不依赖于包体。
三、理解包说明
包说明包括了公有声明。这些声明的作用于对于数据库模式来说是本地的,对于包来说是全局的。所以,被声明的内容可以从应用程序中和包的任何地方访问。下图演示了包的作用范围:
说明中列出了包中对应用程序所有可用的资源。例如,下面的声明演示了一个接受INTEGER类型的参数并返回一个INTEGER结果的函数fac:
FUNCTION fac (n INTEGER) RETURN INTEGER; -- returns n!
这些就是我们要调用的函数的所有信息。我们并不需要考虑它的实现细节(如,是使用迭代还是递归)。
只有子程序和游标有实现部分。所以,如果一个说明只有类型、常量、变量、异常的声明和调用说明,那么包体就没有必要的了。下面就是一个没有包体的包:
CREATE PACKAGE trans_data AS -- bodiless package
TYPE timerec IS RECORD(
minutes SMALLINT,
hours SMALLINT
);
TYPE transrec IS RECORD(
CATEGORY VARCHAR2,
ACCOUNT INT,
amount REAL,
time_of timerec
);
minimum_balance CONSTANT REAL := 10.00;
number_processed INT;
insufficient_funds EXCEPTION;
END trans_data;
包trans_data不需要包体,因为类型、常量、变量和异常并没有实现部分。这样的包能让我们定义全局变量,可供子程序和数据库触发器使用。
1、引用包的内容
如果要引用包内声明的类型、常量、变量、异常和子程序等,就得使用点标识:
package_name.type_name
package_name.item_name
package_name.subprogram_name
package_name.call_spec_name
我们可以从数据库触发器、存储子程序、3GL(第三代程序语言)应用程序和各种Oracle工具中引用包中的内容。例如,我们可以从SQL*Plus中调用过程hire_employee:
SQL> CALL emp_actions.hire_employee('TATE', 'CLERK', ...);
下例中,我们可以从一个嵌入到Pro*C的匿名PL/SQL块调用同样的过程。实参emp_name和job_title是主变量(即声明在主环境中的变量)。
EXEC SQL EXECUTE
BEGIN
emp_actions.hire_employee(:emp_name, :job_title, ...);
约束
我们不能直接或间接地引用远程打包变量。例如,我们不能远程调用下面的过程,因为它在参数初始化子句中引用了打包变量:
CREATE PACKAGE random AS
seed NUMBER;
PROCEDURE initialize (starter IN NUMBER := seed, ...);
同样,我们也不能在包的内部引用主变量。
^ ^希望对你有帮助
⑷ 后缀为dll的数据库文件怎样解读
后缀为dll的数据库文件为动态链接库,要加载到软件上才能用。
附:DLL文件(Dynamic Linkable Library 即动态链接库文件),是一种不能单独运行的文件,它允许程序共享执行特殊任务所必需的代码和其他资源
比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序 EXE 文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的 EXE 程序时,在每次修改重建时都必须调整编译所有源代码,增加了编译过程的复杂性,也不利于阶段性的单元测试。
Windows 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创建为较小的 DLL 文件,并可对它们单独编译和测试。在运行时,只有当 EXE 程序确实要调用这些 DLL 模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了 EXE 文件的大小和对内存空间的需求,而且使这些 DLL 模块可以同时被多个应用程序使用。Windows 自己就将一些主要的系统功能以 DLL 模块的形式实现。
一般来说,DLL 是一种磁盘文件,以.dll、.DRV、.FON、.SYS 和许多以 .EXE 为扩展名的系统文件都可以是 DLL。它由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,成为调用进程的一部分。如果与其它 DLL 之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上。DLL 模块中包含各种导出函数,用于向外界提供服务。DLL 可以有自己的数据段,但没有自己的堆栈,使用与调用它的应用程序相同的堆栈模式;一个 DLL 在内存中只有一个实例;DLL 实现了代码封装性;DLL 的编制与具体的编程语言及编译器无关。
在 Win32 环境中,每个进程都复制了自己的读/写全局变量。如果想要与其它进程共享内存,必须使用内存映射文件或者声明一个共享数据段。DLL 模块需要的堆栈内存都是从运行进程的堆栈中分配出来的。Windows 在加载 DLL 模块时将进程函数调用与 DLL 文件的导出函数相匹配。Windows 操作系统对 DLL 的操作仅仅是把 DLL 映射到需要它的进程的虚拟地址空间里去。DLL 函数中的代码所创建的任何对象(包括变量)都归调用它的线程或进程所有。
调用方式:
1、静态调用方式:由编译系统完成对 DLL 的加载和应用程序结束时 DLL 卸载的编码(如还有其它程序使用该 DLL,则 Windows 对 DLL 的应用记录减1,直到所有相关程序都结束对该 DLL 的使用时才释放它,简单实用,但不够灵活,只能满足一般要求。
隐式的调用:需要把产生动态连接库时产生的 .LIB 文件加入到应用程序的工程中,想使用 DLL 中的函数时,只须说明一下。隐式调用不需要调用 LoadLibrary() 和 FreeLibrary()。程序员在建立一个 DLL 文件时,链接程序会自动生成一个与之对应的 LIB 导入文件。该文件包含了每一个 DLL 导出函数的符号名和可选的标识号,但是并不含有实际的代码。LIB 文件作为 DLL 的替代文件被编译到应用程序项目中。
当程序员通过静态链接方式编译生成应用程序时,应用程序中的调用函数与 LIB 文件中导出符号相匹配,这些符号或标识号进入到生成的 EXE 文件中。LIB 文件中也包含了对应的 DL L文件名(但不是完全的路径名),链接程序将其存储在 EXE 文件内部。
当应用程序运行过程中需要加载 DLL 文件时,Windows 根据这些信息发现并加载 DLL,然后通过符号名或标识号实现对 DLL 函数的动态链接。所有被应用程序调用的 DLL 文件都会在应用程序 EXE文件加载时被加载在到内存中。可执行程序链接到一个包含 DLL 输出函数信息的输入库文件(.LIB文件)。操作系统在加载使用可执行程序时加载 DLL。可执行程序直接通过函数名调用 DLL 的输出函数,调用方法和程序内部其 它的函数是一样的。
2、动态调用方式:是由编程者用 API 函数加载和卸载 DLL 来达到调用 DLL 的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。
显式的调用:
是指在应用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 显式的将自己所做的动态连接库调进来,动态连接库的文件名即是上面两个函数的参数,再用 GetProcAddress() 获取想要引入的函数。自此,你就可以象使用如同本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 释放动态连接库。直接调用 Win32 的 LoadLibary 函数,并指定 DLL 的路径作为参数。LoadLibary 返回 HINSTANCE 参数,应用程序在调用 GetProcAddress 函数时使用这一参数。GetProcAddress 函数将符号名或标识号转换为 DLL 内部的地址。程序员可以决定 DLL 文件何时加载或不加载,显式链接在运行时决定加载哪个 DLL 文件。使用 DLL 的程序在使用之前必须加载(LoadLibrary)加载DLL从而得到一个DLL模块的句柄,然后调用 GetProcAddress 函数得到输出函数的指针,在退出之前必须卸载DLL(FreeLibrary)。
正因为DLL 有占用内存小,好编辑等的特点有很多电脑病毒都是DLL格式文件。但不能单独运行。
动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数。只有在其它模块调用动态链接库中的函数时,它才发挥作用。
⑸ 隐函数求微分怎么求
求隐函数的微分方法有两种:
第一种方法:将x、y看成等同地位,谁也不是谁的函数,方程两边微分,解出dy即可。
第二种方法:链式求导,chain rule。将方程两边都对x求导,有y的地方,先当成y的函数,对y求导,然后再将y对x求导。最后解出dy/dx,也就是解出y‘。
说明:隐函数的求导结果,或微分结果,一般都既是x的函数,也是y的函数。
(5)隐函数数据库扩展阅读:
如果方程F(x,y)=0能确定y是x的函数,那么称这种方式表示的函数是隐函数。而函数就是指:在某一变化过程中,两个变量x、y,对于某一范围内的x的每一个值,y都有确定的值和它对应,y就是x的函数。这种关系一般用y=f(x)即显函数来表示。F(x,y)=0即隐函数是相对于显函数来说的。
隐函数导数的求解一般可以采用以下方法:
方法①:先把隐函数转化成显函数,再利用显函数求导的方法求导;
方法②:隐函数左右两边对x求导(但要注意把y看作x的函数);
方法③:利用一阶微分形式不变的性质分别对x和y求导,再通过移项求得的值;
方法④:把n元隐函数看作(n+1)元函数,通过多元函数的偏导数的商求得n元隐函数的导数。
举个例子,若欲求z = f(x,y)的导数,那么可以将原隐函数通过移项化为f(x,y,z) = 0的形式,然后通过(式中F'y,F'x分别表示y和x对z的偏导数)来求解。
⑹ 怎样求隐函数的最大值
请参阅网络文库《隐函数的极值求法》
http://wenku..com/link?url=b3z5GW9a76G_jTY0XjcDBY-RFYNmM_cNXojRy
⑺ 数据库中参数maxTotal是什么意思
返回列表或数据库中的分类汇总 语法 SUBTOTAL(function_num, ref1, ref2, ...) Function_num 为 1 到 11(包含隐藏值)或 101 到 111(忽略隐藏值)之间的数字,指定使用何种函数在列表中进行分类汇总计算。 Function_num (包含隐藏值) Function_num (忽略隐藏值) 函数 1 101 AVERAGE 2 102 COUNT 3 103 COUNTA 4 104 MAX 5 105 MIN 6 106 PRODUCT 7 107 STDEV 8 108 STDEVP 9 109 SUM 10 110 VAR 11 111 VARP Ref1, ref2, 为要进行分类汇总计算的 1 到 29 个区域或引用。 对E1到E12列使用 SUM 函数计算出的分类汇总 实际上这种情况下可以看成求和 9是Sum的意思,就是求和
⑻ 数据透视表更新后把函数隐藏起来怎么办
需要分三大步骤完成:
1、全部选中工作表→右击→设置单元格格式→保护→去掉“锁定”前方框中的√→确定(此步骤是为了设置保护后可以编辑其他单元格)
2、选中要保护的公式所在单元格→重复以上过程→在“锁定”前方框中加上“√”;(此步骤是为了设置保护公式所在单元格)
3、工具→保护→保护工作表→设置密码(两次,也可以不设)→确定。
注:需要修改公式时→工具→保护→撤销工作表保护.
⑼ 数据库界面修改时,出现不允许从数据类型 datetime 到 int 的隐式转换.请使用 CONVERT 函数来运行此查询。
有些数据类型是支持隐式转换的如:int 和decimal ,可以隐式转换的在使用时可以不用显示转换直接使用,如字段col1 是decimal 数据类型 ,col2 是int 类型 则可以col1 = col2 ,数据库计算时会自己转换.
有些是不能隐式转换的,如varchar和money,需要用显示的转换函数来转换
如convert(money,col1) 或cast (col1 as money)