仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1444|回复: 12
打印 上一主题 下一主题

[学习教程] MSSQL教程之用API函数取色后,怎样将其分红RGB色彩...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。函数
用API函数取色后,怎样将其分红RGB色彩?




成绩:

用API函数取色后,是一个10进制的数值,怎样将其分红RGB色彩?




办法一:

用HEX函数将数值转换为16进制,然后,每两个切分一下就能够失掉RGB数值了
FunctionC10ToRGB_1(lngColorAsLong)AsString
DimstrRAsString
DimstrGAsString
DimstrBAsString
strR=lngColorMod256
strG=lngColor256Mod256
strB=lngColor256256

C10ToRGB_1=strR&"_"&strG&"_"&strB
EndFunction



Subtest1()
Debug.PrintC10ToRGB_1(33023)
Debug.PrintRGB(255,128,0)
EndSub







办法二:


【转载】
假如要将VB的色彩转换为COLORREF,必要利用OleTranslateColor函数。例子:
PrivateDeclareFunctionOleTranslateColorLib"olepro32.dll"_
(ByValOLE_COLORAsLong,_
ByValHPALETTEAsLong,_
pccolorrefAsLong)AsLong

PrivateSubGetRBGFromOLEColour(ByValdwOleColourAsLong,rAsLong,gAsLong,bAsLong)

passahexcolour,returnthergbcomponents
DimclrrefAsLong

translateOLEcolortovalidcolorifpassed
OleTranslateColordwOleColour,0,clrref

b=(clrref65536)And&HFF
g=(clrref256)And&HFF
r=clrrefAnd&HFF

Text1(0).Text=dwOleColour
Text1(1).Text=clrref

EndSub

更完全的例子参考:http://www.mvps.org/vbnet/index.html?code/system/oletranslatecolor.htm









办法三:

用HEX函数将数值转换为16进制,然后,每两个切分一下就能够失掉RGB数值了


Subtest1()
Debug.PrintC10ToRGB(33023)
Debug.PrintRGB(255,128,0)
EndSub

FunctionC10ToRGB(lngAAsLong)AsString
DimstrRAsString
DimstrGAsString
DimstrBAsString
DimstrHEXAsString

strHEX=Right("00000"&Hex(lngA),6)

Debug.Print"B"&Mid(strHEX,1,2)
Debug.Print"G"&Mid(strHEX,3,2)
Debug.Print"R"&Mid(strHEX,5,2)

strB=C16To10(Mid(strHEX,1,2))
strG=C16To10(Mid(strHEX,3,2))
strR=C16To10(Mid(strHEX,5,2))

C10ToRGB=strR&","&strG&","&strB
Debug.PrintC10ToRGB
EndFunction


以下函数将16进制数值转换为10进制数值
PrivateFunctionC16To10(strAAsString)AsDouble
DimaAsDouble
DimbAsString
DimcAsDouble
DimlAsInteger
DimiAsLong
l=Len(strA)
Fori=1Tol
b=Mid(strA,i,1)
SelectCaseb
Case"A"
b=10
Case"B"
b=11
Case"C"
b=12
Case"D"
b=13
Case"E"
b=14
Case"F"
b=15
EndSelect
c=c+b*16^(l-1)
l=l-1
Next
C16To10=c
Debug.PrintC16To10
EndFunction



怎样取色你能够参考本站
http://access911.net/index.asp?board=4&recordid=71FAB31E16DC





EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 07:50:52 | 只看该作者
入门没那么困难,精通没那么容易
若相依 该用户已被删除
板凳
发表于 2015-1-24 11:23:29 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
再见西城 该用户已被删除
地板
发表于 2015-2-1 08:16:45 | 只看该作者
大家注意一点。如下面的例子:
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-7 01:43:19 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-19 13:49:53 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
再现理想 该用户已被删除
7#
发表于 2015-3-6 15:03:55 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
不帅 该用户已被删除
8#
发表于 2015-3-13 03:08:31 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
蒙在股里 该用户已被删除
9#
发表于 2015-3-13 03:08:31 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
简单生活 该用户已被删除
10#
发表于 2015-3-13 03:08:33 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
小魔女 该用户已被删除
11#
发表于 2015-3-13 03:08:35 | 只看该作者
入门没那么困难,精通没那么容易
admin 该用户已被删除
12#
发表于 2015-3-13 03:08:36 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
活着的死人 该用户已被删除
13#
发表于 2015-3-20 11:06:41 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 08:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表