当前位置:首页 » 编程语言 » sql源码

sql源码

发布时间: 2023-06-18 21:38:12

⑴ 用户登录 asp+sql源码

应该一个文件就够了, 下面是HTML和脚本放在一个文件里的, 你直接复制到一个ASP文件里就行,脚本使用VB, 其中数据库连接字符串根据你实际情况改一下,登录显示的页面地址也根据实际情况改一下, 其他各页面载入前先判断这个cnn_save1的session对象是否存在, 如果存在就继续执行, 如果不存在就跳转到这个登录页面

<html>
<head>

</head>
<body background="DROPLETS.JPG" bgcolor="#0000FF">
<form method="POST" action="login.asp">
<font color="#FFFF00">用户名:</font><input type="text" name="yonghuming" size="6"></p>
<p><font color="#FFFF00">密 码:</font><input type="password" name="mima" size="6">
<input type="submit" value="确认" name="B1"></p>
</form>
<%
usr_name=request("yonghuming")
passwd = request ("mima")

set cnn=server.createobject("adodb.connection")
cnn.provider="sqloledb"
provstr="server=服务器名;database=数据库名;uid=sa;pwd=数据库密码;"
cnn.open provstr

set rs = server.createobject("adodb.recordset")
rs.open"select username,password from user where username='"&usr_name&"'",cn,adOpenStatic,4

if rs.RecordCount=1 then
if rs.fields(1).value=passwd then

session.timeout=60
set session("cnn_save1")=cnn
response.redirect "登录成功 要显示的页面"

else

response.write"<font color=yellow size=5>请输入用户名和密码</font>"
end if

else

response.write"<font color=yellow size=5>请输入用户名和密码</font>"

end if

%>
</body>
</html>

⑵ 毕业生管理信息系统jsp,sql源代码

八七二六零零八九九,add me ,帮解决

⑶ 如何对Oracle中的PL/SQL源码进行加密

可以使用wrap 工具或者DBMS_DDL子程序对PL/SQL源码进行加密。wrap工具加密单个源文件,如SQL*Plus脚本。DBMS_DDL子程序加密单个动态生成的PL/SQL单元,如一个CREATE PROCEDURE声明。加密的源文件可以移动,备份,可被SQL*Plus和Improt和Export工具处理,但在静态数据字典视图*_SOURCE中无法看到源码。 WRAP语法 wrap iname=input_file [oname=output_file ] 可省略文件扩展名,如以下的命令是等同的: wrap iname=/mydir/myfile wrap iname=/mydir/myfile.sql 输出文件默认的扩展名为.plb,当然你也可以指定不同的文件名和扩展名。 wrap iname=/mydir/myfile oname=/yourdir/yourfile.out wrap主要是混淆PL/SQL语句的主体部分,如下CREATE语句可以被加密: CREATE [OR REPLACE] FUNCTION function_name
CREATE [OR REPLACE] PROCEDURE procere_name
CREATE [OR REPLACE] PACKAGE package_name
CREATE [OR REPLACE] PACKAGE BODY package_name
CREATE [OR REPLACE] TYPE type_name AS OBJECT
CREATE [OR REPLACE] TYPE type_name UNDER type_name
CREATE [OR REPLACE] TYPE BODY type_name CREATE [OR REPLACE] TRIGGER语句不能被加密,但你可调用加密的过程。加密文件中除了语句头部和C风格(/*…*/)注释外,其它所有注释被删除。

⑷ vb如何连接sql数据库,求源码

Public My_Cnn As New ADODB.Connection '连接数据库
StrCnn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器名"
My_Cnn.CursorLocation = adUseClient
My_Cnn.Open StrCnn

使用数据库
Dim sql As String
Dim My_temp As New ADODB.Recordset

执行SQL语句(一般插入,删除数据)
sql = "数据库语句"
My_cnn.Execute sql

读取数据
sql = "查询语句"
My_temp.Open sql, My_cnn, adOpenDynamic, adLockOptimistic

My_temp.field("字段名")

⑸ 可能是全网最详细的 Spark Sql Aggregate 源码剖析

纵观 Spark Sql 源码,聚合的实现是其中较为复杂的部分,本文希望能以例子结合流程图的方式来说清楚整个过程。这里仅关注 Aggregate 在物理执行计划相关的内容,之前的 parse、analyze 及 optimize 阶段暂不做分析。在 Spark Sql 中,有一个专门的 Aggregation strategy 用来处理聚合,我们先来看看这个策略。

本文暂不讨论 distinct Aggregate 的实现(有兴趣的可以看看另一篇博文 https://www.jianshu.com/p/77e0a70db8cd ),我们来看看 AggUtils#planAggregateWithoutDistinct 是如何生成聚合的物理执行计划的

创建聚合分为两个阶段:

AggregateExpression 共有以下几种 mode:

Q:是否支持使用 hash based agg 是如何判断的?

摘自我另一篇文章: https://www.jianshu.com/p/77e0a70db8cd

为了说明最常用也是最复杂的的 hash based agg,本小节暂时将示例 sql 改为

这样就能进入 HashAggregateExec 的分支

构造函数主要工作就是对 groupingExpressions、aggregateExpressions、aggregateAttributes、resultExpressions 进行了初始化

在 enable code gen 的情况下,会调用 HashAggregateExec#inputRDDs 来生成 RDD,为了分析 HashAggregateExec 是如何生成 RDD 的,我们设置 spark.sql.codegen.wholeStage 为 false 来 disable code gen,这样就会调用 HashAggregateExec#doExecute 来生成 RDD,如下:

可以看到,关键的部分就是根据 child.execute() 生成的 RDD 的每一个 partition 的迭代器转化生成一个新的 TungstenAggregationIterator ,即 HashAggregateExec 生成的 RDD 的各个 partition。由于 TungstenAggregationIterator 涉及内容非常多,我们单开一大节来进行介绍。

此迭代器:

注:UnsafeKVExternalSorter 的实现可以参考:

UnsafeRow 是 InternalRow(表示一行记录) 的 unsafe 实现,由原始内存(byte array)而不是 Java 对象支持,由三个区域组成:

使用 UnsafeRow 的收益:

构造函数的主要流程已在上图中说明,需要注意的是:当内存不足时(毕竟每个 grouping 对应的 agg buffer 直接占用内存,如果 grouping 非常多,或者 agg buffer 较大,容易出现内存用尽)会从 hash based aggregate 切换为 sort based aggregate(会 spill 数据到磁盘),后文会进行详述。先来看看最关键的 processInputs 方法的实现

上图中,需要注意的是:hashMap 中 get 一个 groupingKey 对应的 agg buffer 时,若已经存在该 buffer 则直接返回;若不存在,尝试申请内存新建一个:

上图中,用于真正处理一条 row 的 AggregationIterator#processRow 还需进一步展开分析。在此之前,我们先来看看 AggregateFunction 的分类

AggregateFunction 可以分为 DeclarativeAggregate 和 ImperativeAggregate 两大类,具体的聚合函数均为这两类的子类。

DeclarativeAggregate 是一类直接由 Catalyst 中的 Expressions 构成的聚合函数,主要逻辑通过调用 4 个表达式完成,分别是:

我们再次以容易理解的 Count 来举例说明:

通常来讲,实现一个基于 Expressions 的 DeclarativeAggregate 函数包含以下几个重要的组成部分:

再来看看 AggregationIterator#processRow

AggregationIterator#processRow 会调用

生成用于处理一行数据(row)的函数

说白了 processRow 生成了函数才是直接用来接受一条 input row 来更新对应的 agg buffer,具体是根据 mode 及 aggExpression 中的 aggFunction 的类型调用其 updateExpressions 或 mergeExpressions 方法:

比如,对于 aggFunction 为 DeclarativeAggregate 类型的 Partial 下的 Count 来说就是调用其 updateExpressions 方法,即:

对于 Final 的 Count 来说就是调用其 mergeExpressions 方法,即:

对于 aggFunction 为 ImperativeAggregate 类型的 Partial 下的 Collect 来说就是调用其 update 方法,即:

对于 Final 的 Collect 来说就是调用其 merge 方法,即:

我们都知道,读取一个迭代器的数据,是要不断调用 hasNext 方法进行 check 是否还有数据,当该方法返回 true 的时候再调用 next 方法取得下一条数据。所以要知道如何读取 TungstenAggregationIterator 的数据,就得分析其这两个方法。

分为两种情况,分别是:

Agg 的实现确实复杂,本文虽然篇幅已经很长,但还有很多方面没有 cover 到,但基本最核心、最复杂的点都详细介绍了,如果对于未 cover 的部分有兴趣,请自行阅读源码进行分析~

热点内容
stn数据库 发布:2025-02-12 09:32:31 浏览:602
iossocket编程 发布:2025-02-12 09:32:20 浏览:899
sql语句相等 发布:2025-02-12 09:32:19 浏览:351
278源码 发布:2025-02-12 09:22:40 浏览:248
13人牛牛源码 发布:2025-02-12 09:22:40 浏览:155
win2008r2搭建iscsi服务器 发布:2025-02-12 09:18:30 浏览:634
python解压zip 发布:2025-02-12 09:08:46 浏览:921
如何加强人员配置 发布:2025-02-12 09:07:54 浏览:417
lol一区为什么服务器好卡 发布:2025-02-12 09:02:22 浏览:629
安卓运营商cm是哪个版本 发布:2025-02-12 09:00:00 浏览:515