Sql养成一个好习惯是一笔财富

别白忙活!EAAI投稿避坑指南:5条红线碰就拒,工程应用重点划重点 EAAI投稿避坑指南:5条红线与工程应用要点 投稿《Engineering Applications of Artificial Intelligence》(EAAI)需特别注意5条红线,否则直接拒稿:1)避免提出新隐喻元启发式算法,应聚焦具体工程应用;2)摘要须明确区分AI贡献与工程应用;3)标题和摘要禁止使用未定义缩写;4)必须采用单栏格式;5)关键词不能包含缩写。此外,论文需突出AI方法在工程实践中的创新与落地价值,建议补充实际工程数据、部署成本分析和与传统方法的对比。投稿前务必逐项核查这5条要求,以 阅读详情
 

Sql养成一个好习惯是一笔财富

          我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。

     要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序,下手的时候就胸有成竹,那么下手是不是有把握点呢?

   一:查询的逻辑执行顺序

 (1) FROM < left_table> 

 (3) < join_type>  JOIN < right_table>   (2) ON < join_condition> 

 (4) WHERE < where_condition> 

 (5) GROUP BY < group_by_list> 

 (6) WITH {cube | rollup}

 (7) HAVING < having_condition> 

 (8) SELECT  (9) DISTINCT (11) < top_specification>  < select_list> 

 (10) ORDER BY < order_by_list> 

 标准的SQL 的解析顺序为:

 (1).FROM 子句 组装来自不同数据源的数据

 (2).WHERE 子句 基于指定的条件对记录进行筛选

 (3).GROUP BY 子句 将数据划分为多个分组

 (4).使用聚合函数进行计算

 (5).使用HAVING子句筛选分组

 (6).计算所有的表达式

 (7).使用ORDER BY对结果集进行排序

二 执行顺序:

   

 1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1

 2.ON:对vt1表应用ON筛选器只有满足< join_condition> 为真的行才被插入vt2

 3.OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2 生成t3如果from包含两个以上表则对上一个联结生成的结果表和下一个表重复执行步骤和步骤直接结束

 4.WHERE:对vt3应用 WHERE 筛选器只有使< where_condition> 为true的行才被插入vt4

 5.GROUP BY:按GROUP BY子句中的列列表对vt4中的行分组生成vt5

 6.CUBE|ROLLUP:把超组(supergroups)插入vt6 生成vt6

 7.HAVING:对vt6应用HAVING筛选器只有使< having_condition> 为true的组才插入vt7

 8.SELECT:处理select列表产生vt8

 9.DISTINCT:将重复的行从vt8中去除产生vt9

 10.ORDER BY:将vt9的行按order by子句中的列列表排序生成一个游标vc10

 11.TOP:从vc10的开始处选择指定数量或比例的行生成vt11 并返回调用者

     

         看到这里,那么用过linqtosql的语法有点相似啊?如果我们我们了解了sqlserver执行顺序,那么我们就接下来进一步养成日常sql好习惯,也就是在实现功能同时有考虑性能的思想,数据库是能进行集合运算的工具,我们应该尽量的利用这个工具,所谓集合运算实际就是批量运算,就是尽量减少在客户端进行大数据量的循环操作,而用SQL语句或者存储过程代替。

三、只返回需要的数据

  返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意:

  A、横向来看,

  (1)不要写SELECT *的语句,而是选择你需要的字段。

  (2)当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。

01如有表table1(ID,col1)和table2 (ID,col2)
02 
03 Select A.ID, A.col1, B.col2
04 
05 -- Select A.ID, col1, col2 –不要这么写,不利于将来程序扩展
06 
07 from table1 A inner join table2 B on A.ID=B.ID Where …
08 
09 B、纵向来看,
10 
11 (1)合理写WHERE子句,不要写没有WHERE的SQL语句。
12 
13 (2) SELECT TOP N * --没有WHERE条件的用此替代

四 :尽量少做重复的工作

A、控制同一语句的多次执行,特别是一些基础数据的多次执行是很多程序员很少注意的。

B、减少多次的数据转换,也许需要数据转换是设计的问题,但是减少次数是程序员可以做到的。

C、杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销。

D、合并对同一表同一条件的多次UPDATE,比如

UPDATE EMPLOYEE SET FNAME='HAIWER' 
WHERE EMP_ID=' VPA30890F' UPDATE EMPLOYEE SET LNAME='YANG' 
WHERE EMP_ID=' VPA30890F' 
这两个语句应该合并成以下一个语句
UPDATE EMPLOYEE SET FNAME='HAIWER',LNAME='YANG'  WHERE EMP_ID=' VPA30890F'

E、UPDATE操作不要拆成DELETE操作+INSERT操作的形式,虽然功能相同,但是性能差别是很大的。

五、注意临时表和表变量的用法

在复杂系统中,临时表和表变量很难避免,关于临时表和表变量的用法,需要注意:

A、如果语句很复杂,连接太多,可以考虑用临时表和表变量分步完成。

B、如果需要多次用到一个大表的同一部分数据,考虑用临时表和表变量暂存这部分数据。

C、如果需要综合多个表的数据,形成一个结果,可以考虑用临时表和表变量分步汇总这多个表的数据。

D、其他情况下,应该控制临时表和表变量的使用。

E、关于临时表和表变量的选择,很多说法是表变量在内存,速度快,应该首选表变量,但是在实际使用中发现,

(1)主要考虑需要放在临时表的数据量,在数据量较多的情况下,临时表的速度反而更快。

(2)执行时间段与预计执行时间(多长)

F、关于临时表产生使用SELECT INTO和CREATE TABLE + INSERT INTO的选择,一般情况下,

SELECT INTO会比CREATE TABLE + INSERT INTO的方法快很多,

但是SELECT INTO会锁定TEMPDB的系统表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用户并发环境下,容易阻塞其他进程,

所以我的建议是,在并发系统中,尽量使用CREATE TABLE + INSERT INTO,而大数据量的单个语句使用中,使用SELECT INTO。

六、子查询的用法(1)

  子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。

任何允许使用表达式的地方都可以使用子查询,子查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,

往往一个不合适的子查询用法会形成一个性能瓶颈。如果子查询的条件中使用了其外层的表的字段,这种子查询就叫作相关子查询。

相关子查询可以用IN、NOT IN、EXISTS、NOT EXISTS引入。 关于相关子查询,应该注意:

(1)

A、NOT IN、NOT EXISTS的相关子查询可以改用LEFT JOIN代替写法。比如: SELECT PUB_NAME FROM PUBLISHERS WHERE PUB_ID NOT IN (SELECT PUB_ID FROM TITLES WHERE TYPE = 'BUSINESS') 可以改写成: SELECT A.PUB_NAME FROM PUBLISHERS A LEFT JOIN TITLES B ON B.TYPE = 'BUSINESS' AND A.PUB_ID=B. PUB_ID WHERE B.PUB_ID IS NULL
(2)
01SELECT TITLE FROM TITLES 
02WHERE NOT EXISTS 
03 (SELECT TITLE_ID FROM SALES 
04WHERE TITLE_ID = TITLES.TITLE_ID)
05可以改写成:
06SELECT TITLE 
07FROM TITLES LEFT JOIN SALES 
08ON SALES.TITLE_ID = TITLES.TITLE_ID 
09WHERE SALES.TITLE_ID IS NULL
10B、 如果保证子查询没有重复 ,IN、EXISTS的相关子查询可以用INNER JOIN 代替。比如:
11SELECT PUB_NAME 
12FROM PUBLISHERS 
13WHERE PUB_ID IN 
14 (SELECT PUB_ID 
15 FROM TITLES 
16 WHERE TYPE = 'BUSINESS')
17可以改写成:
18SELECT A.PUB_NAME --SELECT DISTINCT A.PUB_NAME 
19FROM PUBLISHERS A INNER JOIN TITLES B 
20ON        B.TYPE = 'BUSINESS' AND 
21A.PUB_ID=B. PUB_ID
(3)
1C、 IN的相关子查询用EXISTS代替,比如
2SELECT PUB_NAME FROM PUBLISHERS 
3WHERE PUB_ID IN 
4(SELECT PUB_ID FROM TITLES WHERE TYPE = 'BUSINESS')
5可以用下面语句代替:
6SELECT PUB_NAME FROM PUBLISHERS WHERE EXISTS 
7(SELECT 1 FROM TITLES WHERE TYPE = 'BUSINESS' AND 
8PUB_ID= PUBLISHERS.PUB_ID)
9D、不要用COUNT(*)的子查询判断是否存在记录,最好用LEFT JOIN或者EXISTS,比如有人写这样的语句:
01SELECT JOB_DESC FROM JOBS 
02WHERE (SELECT COUNT(*) FROM EMPLOYEE WHERE JOB_ID=JOBS.JOB_ID)=0
03应该改成:
04SELECT JOBS.JOB_DESC FROM JOBS LEFT JOIN EMPLOYEE  
05ON EMPLOYEE.JOB_ID=JOBS.JOB_ID 
06WHERE EMPLOYEE.EMP_ID IS NULL
07   
08SELECT JOB_DESC FROM JOBS 
09WHERE (SELECT COUNT(*) FROM EMPLOYEE WHERE JOB_ID=JOBS.JOB_ID)<>0
10应该改成:
11SELECT JOB_DESC FROM JOBS 
12WHERE EXISTS (SELECT 1 FROM EMPLOYEE WHERE JOB_ID=JOBS.JOB_ID)
 七:尽量使用索引 
    

建立索引后,并不是每个查询都会使用索引,在使用索引的情况下,索引的使用效率也会有很大的差别。只要我们在查询语句中没有强制指定索引,

索引的选择和使用方法是SQLSERVER的优化器自动作的选择,而它选择的根据是查询语句的条件以及相关表的统计信息,这就要求我们在写SQL

语句的时候尽量使得优化器可以使用索引。为了使得优化器能高效使用索引,写语句的时候应该注意:

(1
1A、不要对索引字段进行运算,而要想办法做变换,比如
2    SELECT ID FROM T WHERE NUM/2=100
3    应改为:
4    SELECT ID FROM T WHERE NUM=100*2
5  
6    SELECT ID FROM T WHERE NUM/2=NUM1
7    如果NUM有索引应改为:
8    SELECT ID FROM T WHERE NUM=NUM1*2
9    如果NUM1有索引则不应该改。

(2)

01发现过这样的语句:
02    SELECT 年,月,金额 FROM 结余表  WHERE 100*年+月=2010*100+10
03    应该改为:
04    SELECT 年,月,金额 FROM 结余表 WHERE 年=2010 AND月=10
05  
06B、 不要对索引字段进行格式转换
07日期字段的例子:
08WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15'
09应该改为
10WHERE日期字段〉='2010-07-15'   AND   日期字段<'2010-07-16'
11  
12ISNULL转换的例子:
13WHERE ISNULL(字段,'')<>''应改为:WHERE字段<>''
14WHERE ISNULL(字段,'')=''不应修改
15WHERE ISNULL(字段,'F') ='T'应改为: WHERE字段='T'
16WHERE ISNULL(字段,'F')<>'T'不应修改

(3)

01C、 不要对索引字段使用函数
02WHERE LEFT(NAME, 3)='ABC' 或者WHERE SUBSTRING(NAME,1, 3)='ABC'
03应改为: WHERE NAME LIKE 'ABC%'
04日期查询的例子:
05WHERE DATEDIFF(DAY, 日期,'2010-06-30')=0
06应改为:WHERE 日期>='2010-06-30' AND 日期 <'2010-07-01'
07WHERE DATEDIFF(DAY, 日期,'2010-06-30')>0
08应改为:WHERE 日期 <'2010-06-30'
09WHERE DATEDIFF(DAY, 日期,'2010-06-30')>=0
10应改为:WHERE 日期 <'2010-07-01'
11WHERE DATEDIFF(DAY, 日期,'2010-06-30')<0
12应改为:WHERE 日期>='2010-07-01'
13WHERE DATEDIFF(DAY, 日期,'2010-06-30')<=0
14应改为:WHERE 日期>='2010-06-30'

D、不要对索引字段进行多字段连接

  比如:

  WHERE FAME+ '. '+LNAME='HAIWEI.YANG'

  应改为:

  WHERE FNAME='HAIWEI' AND LNAME='YANG'

  

八:多表连接的连接条件对索引的选择有着重要的意义,所以我们在写连接条件条件的时候需要特别注意。

  A、多表连接的时候,连接条件必须写全,宁可重复,不要缺漏。

  B、连接条件尽量使用聚集索引

  C、注意ON、WHERE和HAVING部分条件的区别

  ON是最先执行, WHERE次之,HAVING最后,因为ON是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,WHERE也应该比 HAVING快点的,因为它过滤数据后才进行SUM,在两个表联接时才用ON的,所以在一个表的时候,就剩下WHERE跟HAVING比较了

1考虑联接优先顺序:
2(1)INNER JOIN 
3(2)LEFT JOIN (注:RIGHT JOIN 用 LEFT JOIN 替代)
4(3)CROSS JOIN

其它注意和了解的地方有:

A、在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数

B、注意UNION和UNION ALL的区别。--允许重复数据用UNION ALL好  

C、注意使用DISTINCT,在没有必要时不要用

 D、TRUNCATE TABLE 与 DELETE 区别

 E、减少访问数据库的次数

还有就是我们写存储过程,如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region

sql我比较喜欢用的就是

--startof  查询在职人数
     sql语句
  --end of

      

          正式机器上我们一般不能随便调试程序,但是很多时候程序在我们本机上没问题,但是进正式系统就有问题,但是我们又不能随便在正式机器上操作,那么怎么办呢?我们可以用回滚来调试我们的存储过程或者是sql语句,从而排错。

BEGIN TRAN
 UPDATE a SET 字段=''
ROLLBACK

       

      作业存储过程我一般会加上下面这段,这样检查错误可以放在存储过程,如果执行错误回滚操作,但是如果程序里面已经有了事务回滚,那么存储过程就不要写事务了,这样会导致事务回滚嵌套降低执行效率,但是我们很多时候可以把检查放在存储过程里,这样有利于我们解读这个存储过程,和排错。

       
 BEGIN TRANSACTION   
--事务回滚开始       
  
--检查报错
 IF ( @@ERROR > 0 )     
                    BEGIN        
--回滚操作
                        ROLLBACK TRANSACTION        
                        RAISERROR('删除工作报告错误', 16, 3)        
                        RETURN          
                    END          
  
  
--结束事务
  COMMIT TRANSACTION

        好久没有写博文了,工作项目一个接一个,再加上公司人员流动,新人很多事情接不下来,加班成了家常便饭,仓促写下这些希望对大家有帮助,不对的也欢迎指点,交流互相提高。

有错误的地方欢迎大家拍砖,希望交流和共享。
自抗扰控制(ADRC)理论与工程实践:6.1 离散时间ADRC的推导 本文系统阐述了自抗扰控制(ADRC)的离散化方法,重点对比了前向欧拉法和基于零阶保持器(ZOH)的精确离散化两种方法。前向欧拉法计算简单但精度较低,稳定性受采样周期约束;ZOH法精度高但对大采样周期更鲁棒。文章详细推导了跟踪微分器、扩张状态观测器和控制律的离散形式,分析了采样周期选择的关键因素,为ADRC的数字实现提供了理论指导。 阅读详情

相关推荐

电路课设-音响分频器电路设计

(一)题目简介 1.一阶分频器电路设计 假定高音和低音扬声器均等效为 16 欧姆电阻,设计如图 2 的简单分频器电 路,要求高低频分界(两个滤波器的截止频率)为 5kHz。 1) 写出高音扬声器和低音扬声器电压对于 vs 的传递函数,确定电路中电 容 C 和电感 L 的元件值;2)利用 AC 频率扫描分析求出两个扬声器电压的频率响应曲线,验证计算 结果。用包含高低频成分的电压 vs 激励进行测量验证。 3)计算并利用 EWB 仿真证明从 vs 看进去的阻抗为一常数 16 欧姆。

weixin_53507617的博客 1万+

调试报错"无法与SQLServer通信和无法启动T_SQL调试"

周末加了个班,搞了搞“远程调试利用VSSQLServer 存储过程”,把本机的Administrator账户密码改成了跟远程服务器一样的密码,并在“控制面板”中,设置“管理我的网络密码”, 进行设置,默认远程连接远程服务器的用户名和密码。并在远程服务器端浮云客户机用户Sys权限,并在数据库中添加此用户,并授予相应Sys权限,详情见上文。 今天在调试的时候,提示“无法与S

wmg494005678的专栏 4426

踩坑记录:服务商模式下微信小程序支付,为什么必须用子商户的AppID获取openid?

本文深入解析了服务商模式下微信小程序支付必须使用子商户AppID获取openid的技术原因,详细对比了服务商模式与直连模式的关键差异,并提供了正确的配置指南和常见问题解决方案,帮助开发者避免微信支付集成中的常见陷阱。

weixin_28318011的博客 550

SQL SERVER 2008 无法启动T-SQL调试 解决方法

无法启动transact sql调试器 (写数据库作业时候报的错,我简直就是遇错天才,每次写作业都报错55555) 解决方法(别人的): 1、登录SQL Server,最好sa账号登录 2、进入主数据库master 执行命令:如 exec sp_addsrvrolemember ‘aaa-PC\Administrator’, ‘sysadmin’ 将 Windows 登录帐户添加为 sysadmi...

陈杉菜 4878

【ESP32 S3 开发】基于I2S协议驱动INMP441数字麦克风 实现语音采集

注意INMP441的 L/R接地之后才稳定输出数据 否则一直都是0WAV格式说明这里主要是想说wav文件重要的就是生成一个wavhead来标识它是一个wave文件,wave文件的data chunk 中的data部分还是PCM编码格式的数据,直接从I2S读进去就可以,不需要压缩。wav文件的头一般由4个chunk组成。 以16bit深度为例,代码如下。其他深度可以根据注释自行计算。 I2S -> DAC i2s_read()函数,向flash中划分的一个buff当中读入byte数组。以16bit深度为例,一

m0_43395703的博客 1万+

Python自动化测试报告:飞书群机器人消息卡片实战

本文详细介绍了如何利用Python和飞书群机器人实现自动化测试报告的智能通知。通过构建可定制的消息卡片,将测试结果(如通过数、失败数)以清晰、美观的格式自动推送至团队群聊,并支持一键跳转查看详细报告,从而显著提升团队协作与问题响应效率。

k6l7m8n9的博客 811

如何解决SQL Server 2012 SQL编辑器总是显示对象名无效的问题

输入的对象名称分明存在,SQL编辑器却总是在对象名称下面画上红色的波浪线,并提示对象名无效,如何解决这个问题呢? 执行“编辑”&gt;“IntelliSense”&gt;“刷新本地缓存”命令,或者按Ctrl+Shift+R组合键即可。有图有真相!   ...

966

落地实战!Python构建地方政府公开数据爬虫:政策/数据/规划全维度抓取(附反爬适配+数据清洗)

政务公开数据爬虫的核心不是“技术多先进”,而是“适配政务网站的特性”——慢一点、稳一点、合规一点,比追求抓取速度更重要。多地市爬虫集群:通过配置文件管理不同地市的URL规则,实现全省/全国政务数据抓取;图片表格识别:结合OCR工具(如pytesseract)识别政务网站的图片表格,转换为结构化数据;数据可视化:将抓取的统计数据导入PowerBI/Matplotlib,实现区域发展趋势分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1799

SQL 养成一个好习惯是一笔财富

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。 要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我

zuodongmei0921的博客 559

Hadoop在大数据领域的电商数据分析案例

随着电商行业的迅猛发展,每天都会产生海量的数据,如用户浏览记录、购买行为、商品信息等。如何从这些数据中提取有价值的信息,为电商企业的决策提供支持,成为了电商企业面临的重要问题。Hadoop作为一个开源的分布式计算平台,具有高可靠性、高扩展性和高效性等特点,能够很好地处理大数据。本文的目的就是通过实际案例,详细介绍Hadoop在电商数据分析中的应用,范围涵盖了从数据采集、存储到分析的整个流程。本文首先介绍背景信息,让读者了解Hadoop在电商数据分析中的重要性和应用场景。

Java大师兄的博客 1178

SAP 基于生产订单行项目外部加工创建采购申请时的一个增强需求

摘要 本文介绍在SAP系统中实现生产订单外协工序自动生成采购申请(PR)时,将指定文本写入PR抬头文本的技术方案。关键点包括: 业务背景:通过CO02事务码将工序标记为外部加工,系统自动生成PR,需在生成时自动写入抬头文本。 技术难点: PR抬头文本存储在STXH/STXL而非EBAN表 标准增强点ME_PROCESS_REQ_CUST在外协场景可能不触发 推荐方案: 使用BAdI ME_REQ_POSTED,在PR过账时点执行 通过Text Object EBANH和Text ID(如B01)写入文本 实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 623

SQL养成一个好习惯是一笔财富

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。   要知道SQL语句,我想我们有必要知道SQL Server查询分析器怎么执行我们...

u014712365的博客 109

第七天 Labview进阶(7.2 与汇川PLC通信)

运行环境: Labview 2020 Autoshop v4.10.1.1 该文档中包括Labview程序和汇川PLC程序,可以完美实现Labview与汇川PLC的通信。具体的使用教程可以参考本人的相关文章,讲解详尽,请尽情享用!

weixin_38637405的博客 3527

SQL养成这8个好习惯是一笔财富

来 源:数据前线不管是做数据开发还是数据分析,大部分人都离不开跟数据库打交道。如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么今天,我们结合平时个人工作经验和大家分享一下,希望对大家有帮助。要知道SQL语句,我想我们有必要知道SQLserver查询分析器怎么执行SQL语句的,我么很多人会看执行计划,或者用profile来监...

张俊红的个人博客 158

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

养成一个SQL好习惯带来一笔大财富

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是 erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千 行,如果数据量大,人员流动大,那么我么还能保证下一段时间 系统还能流畅的运行吗?那么还能保证下一个人能看懂我么的存储 过程吗?那么我结合

紫影灵风(Net) 737

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[转]SQL养成一个好习惯是一笔财富

  一、查询的逻辑执行顺序   (1) FROM left_table   (3) join_type JOIN right_table (2) ON join_condition   (4) WHERE where_condition   (5) GROUP BY group_by_list   (6) WITH {cube | rollup} ...

superhuo 116
上一篇: SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案
下一篇: c++builder 中调用WebService的例子
一剑平江湖
博客等级 码龄18年 207粉丝 1070原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值