html页面中运用CSS为层添加滚动条

  1. <style type=”text/css”> 
        .scroll {  
            width: 50%;                                     /*宽度*/  
            height: 200px;                                  /*高度*/  
            color: ;                                        /*颜色*/  
            font-family: ;                                  /*字体*/  
            padding-left: 10px;                             /*层内左边距*/  
            padding-right: 10px;                            /*层内右边距*/  
            padding-top: 10px;                              /*层内上边距*/  
            padding-bottom: 10px;                           /*层内下边距*/  
            overflow-x: scroll;                             /*横向滚动条(scroll:始终出现;auto:必要时出现;具体参考CSS文档)*/  
            overflow-y: scroll;                             /*竖向滚动条*/  
              
            scrollbar-face-color: #D4D4D4;                  /*滚动条滑块颜色*/  
            scrollbar-hightlight-color: #ffffff;                /*滚动条3D界面的亮边颜色*/  
            scrollbar-shadow-color: #919192;                    /*滚动条3D界面的暗边颜色*/  
            scrollbar-3dlight-color: #ffffff;               /*滚动条亮边框颜色*/  
            scrollbar-arrow-color: #919192;                 /*箭头颜色*/  
            scrollbar-track-color: #ffffff;                 /*滚动条底色*/  
            scrollbar-darkshadow-color: #ffffff;                /*滚动条暗边框颜色*/  
        }  
        </style>
    <div class=”scroll”> 滚动内容</div>
发表在 CSS | 留下评论

Vb ADO 操作Access数据库(创建,添加,修改)

DAO(Data Access Object)全称为数据访问对象,它是数据库编程的重要方法之一。DAO的一种面向对象的界面接口,特色为它不是可视化的对象,使用它全部都要靠编码来完成,DAO是设计关系型数据库系统结构的对象类的集合。它提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。由于ADO(ActiveX Data Object ActiveX 数据对象)的出现,DAO的使用已大大减少,但它无须使用ODBC(开放数据库连接)便可连接各个数据源,因而我们仍经常用经典的DAO。下面我向大家详细介绍如何使用DAO编程。
  DAO使用之前必须先引用。方法为打开VB6.0 , VB工程菜单中,选择引用项,当引用对话框出现后,从库的列表中,选择“Microsoft DAO 3.51 Object Library”,单击确定。现在便可以使用DAO对象库提供的所有对象进行编程了。
  一、创建数据库:
  在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库。这一点在程序中是非常有用的。用户可以根据要求实时建立数据库。建立过程如下:  
  Private Sub Com_creat_Click()
  On Error GoTo Err100
  CreatDataBase “数据库名称.mdb” dbLangGeneral
  Msgbox “数据库建立完毕
  Exit Sub
  Err100:
  MsgBox “不能建立数据库! ” amp; vbCrLf amp; vbCrLf amp; Err.Description, vbInformation
  End Sub
  这样,数据库便在当前默认的路径下建立了。
  二、创建表与字段:
  建立数据库后,则需要在该数据库中建立表,这要用到TableDef 对象。先定义一个TableDef类型的对象,然后用TableDef集合中Append方法将之追加到数据库当中去。并且同时定义一个Field对象,用CreatFiele的方法创建一个Field对象,向表中添加字段。例如:
  Private Sub Com_table_Click()
  On Error GoTo Err100
  Dim Defdb As DataBase
  Dim NewTable As TableDef
  Dim NewField As Field
  Set Defdb = Workspaces(0).OpenDatabase (App.path amp; “\数据库名称.mdb” ,0, False)
  Set NewTable = DefDataBase.CreateTableDef(“表名“)
  Set NewField = DefTable.CreateField( “字段名” , dbText ,6) ′创建一个字符型的字段,长度为6个字符
  DefTableFields.Append NewField ′字段追加
  DefDatabase.TableDefs.Append NewTable ′表追加
  Msgbox ” 表建立完毕
  Exit Sub
  Err100:
  MsgBox “对不起,不能建立表。请先再建表前建立数据库?“, vbCritical
  End Sub
  一个数据库可能有十几个甚至几十个字段,一个表中有多少个字段,则要创建多少次并要追加到表中。每建立一个字段后都要用到字段追加命令,但是表追加只需在所有字段建立完成后用一条命令即可完成。

  三、打开数据库:
  在VB中,对一个对象变量引用之前必须加以说明。DAO也是如此,必须先声明数据库变量,例如:Dim dbase As Database 。建立了数据库对象变量后,我们便可打开数据库了,在一般情况下都只是访问一个数据库,当打开数据库后再对数据库中的各个记录进行操作,这就要用到Recordset 对象建立记录集。例如:    

Private Sub Command_OpenDatabase_Click()
  Dim dbase as Database
  Dim rs As Recordset
  Set dbase = OpenDatabase ( App.path amp; “\数据库名称.mdb” )
  Set rs = dbase.OpenRecordset ( ” select * from 表名 ” )
  End Sub
  这样,数据库中的记录便放到Recordset中,可以进行后续操作了。
  

四、使用数据库:
  当打开数据库,建立Recordset 记录集后,便可浏览、删除、添加、查找数据库中的内容。

发表在 VB | 留下评论

同一个ASP站点UTF-8和GB2312的两个子站点乱码的解决方法

ASP程序在同一个站点中,如果出现UTF-8编码的程序,又有GB2312的程序,在浏览完UTF-8编码的页面后,再浏览GB2312的页面,GB2312编码的页面就会出现乱码.

出现这样的问题,可能是:当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面.所以会乱码.

如果要将他们转为同一种编码可能会很痛苦.

还有一种解决方法是:不用作任何转换,保持原来的编码不变.在Utf-8程序的第一行加上:

CODE: 
——————————————————————————–

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>
<%Session.CodePage=65001%>
在GB2312程序的第一行加上

CODE: 
——————————————————————————–

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
<%Session.CodePage=936%>

这样就可以了.当然如果你的所有程序都在第一行include 一个文件的话,把上面的代码放在被include 的文件第一行就马上解决问题了.
Session.CodePage是指定服务器用哪种编辑来输出.有了它的声明,服务器就不会用默认的编码引擎来输出了.

同一个ASP站点UTF-8和GB2312的两个子站点乱码的解决方法

 

发表在 Windows相关 | 留下评论

用VB开发绿色软件

随着计算机的不断发展,操作系统的不断更新,硬盘容量、内存容量及相应的存取速度不断提高,使得开发出来的应用程序不再只是单一的可执行文件,特别是Windows应用程序,微软在Windows中引入了一个非常好但管理不方便的新东西──动态链接库DLL。这样开发出来的应用程序本身变小了,可相应辅佐运行的DLL文件变多了,而且在Windows中开发的程序,特别是用VB开发的程序往往要用到第三方控件OCX。这样,开发出来的程序就不容易管理,而且Windows应用程序一般都需要安装。而卸载往往又不彻底,常常会保留一些所谓的共享文件。安装一个、两个这样的程序倒无妨,安装多了Windows的系统文件夹就会急剧膨胀。绿色软件就是在这种情况下诞生的,它的特点是程序不用安装,拷贝或解压到一个目录下就可以运行,卸载只要删除整个目录就OK了。

    下面我们来谈谈怎样用VB 6.0编写一个绿色软件。

  首先,用VB编写好应用程序。需注意的是,一些用不着的第三方控件最好不要保留在工程中,这样开发出来的程序相对较小,并生成EXE文件。

    其次,程序编好后,退出开发环境,启动VB 6.0中文版工具──Package & Deployment向导。用向导将应用程序打包。完成后用Winzip 8.0或其他能打开并能解压CAB文件的压缩工具打开安装目录下的SETUP.CAB,并解压到一个临时目录,删除St6unst.exe和Setup1.exe文件(特别注意Msvbvm60.dll和Asycfilt.dll必须带上,否则程序无法运行)。

    再次,将应用程序本身要调用到的下级目录一起拷贝到这个临时目录中。如没有则跳过这一步。

    最后,将这个临时目录中的文件整理一下。如果你认为这些文件大了些,你可以用ASPACK或其他一些可执行文件压缩工具将这个目录中的可执行文件、DLL文件、OCX文件压缩一下,用VB编写的程序一般经压缩后大小只有原来的30%。如果运行稳定就可以将BAK文件删除,不行则恢复到原来的面貌。

    现在你可以将这个目录改成你所需的名字,打包就可以发行了。它能在没安装VB的机器中正常运行,怎么样,去Try一下吧,自己也来开发绿色软件。

发表在 VB | 标签为 , | 留下评论

《PHP和MySQL Web开发》MySQL 基础篇

本文是 《PHP和MySQL Web开发》 第8、9、10章阅读笔记,主要介绍 MySQL 入门基础知识! 一、数据库基础 1.1、数据库概念 表:关系数据库由关系组成,关系通常称为表。 列:表中的每一列都有一个名称和数据类型,列也叫“域”或“属性”。 行:关系类型每一行具有相同的属性,行也称“记录”。 健:表中标志列称为健或主键,可用来做表格间的引用。 外键:主键出现在另一个表时,该主键称为外键。 1.2、数据库表间关系 一对一:主键-主键 一对多:主键–外键 多对多:主键1–外键1外键2–主键2 1.3、登录连接到 MySQL 1 2 语法:mysql -h主机地址 -u用户名 -p用户密码 实例:mysql -h127.0.0.1 -uroot -p123456 ■-h主机地址,可以有空格,若省略则使用localhost。 ■-u用户名,可以有空格,若省略则使用登录操作系统的用户名。 ■-p用户密码,必须相连不能有空格。 ■MySQL 每个命令用分好隔开。 ■SQL 语句不区分大小写,数据库和表名称则区分大小写。 二、MySQL 用户与权限 2.1、MySQL 权限介绍 MySQL 权限分四个级别,分别是全局、数据库、表、列。每个级别都有三种类型权限:1、用户权限,2、管理员权限,3、特殊权限。 用户权限:1)select(查询),2)insert(插入),3)update(修改),4)delete(删除表),5)index(索引),6)alter(变更表结构),7)create(创建数据库),8)drop(删除库或表) 管理员权限:1)create temporary tables,2)file,3)lock tables,4)process,5)reload,6)replication client,7)replication slave,8)show databases,9)shutdown,10)super 特殊权限:1) all(用户+管理权限),2)usage(不授予权限) 2.2、创建MySQL用户(GRANT命令) 1 2 3 4 5 GRANT 权限 [列] ON 数据库.表 TO 用户名@主机 [IDENTIFIED BY 'password'] [require ssl_option] [WITH [GRANT OPTION | limit_options] ] 1) *.* 指所有数据库和所有表。 2) * 指选中的数据库和所有表。 3) dbname.* 指选定数据库中的所有表。 4) “%” 是默认值,指所有主机。 5) with grant option 表示允许用户向被人授予自己拥有的权限。 limit_options 可用选项有: 1 2 3 max_queries_per_hour n max_updates_per_hour n max_connections_per_hour n 2.3、撤销权限REVOKE命令 1 2 3 REVOKE 权限 [,GRANT OPTION] ON 数据库.表 FROM 用户名@主机 注:撤销grant option权限,可不指定数据库和表名。 三、MySQL 数据库和表 创建数据库:create database 数据库名; 使用数据库:use 数据库名; 删除数据库:drop database 数据库名称; 创建数据库表:create table 数据表名称 (列名称); 删除数据库表:drop table 表名称; 1 2 3 4 5 6 CREATE TABLE customers (customersid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(10) NOT NULL, Amount FLOAT(6,2) NOT NULL, DATE DATE NOT NULL ); 整形:1) smallint、2) int、3)bigint 浮点型:1) float(长度,小数位数)、2) double(长度,小数位数) 时间日期:1) date (YYYY-MM-DD)、2) time (HH:MM:SS)、3) datetime (YYYY-MM-DD HH:MM:SS)、3) year[(2|4)] (11或2011) 字符串:常用的有char(固定字符数)和text(长文本) unsigned:表示只能为0或正数 not null:表示必须有一个值,但可以为空(null) auto_increment:表示自动插入一个唯一标识值 primary key:主键 四、INSERT 插入数据 方法一 1 2 INSERT 表 [(列1,列2)] VALUES (‘值1′,’值2′); INSERT 表 [(列1,列2)] VALUES (‘值1′,’值2′),(‘值1′,’值2′); (插入多行记录) 方法二 1 INSERT 表 SET 列1=’值1′,列2=’值2′,列3=’值3′; 注:数字和日期不需要引号 五、SELECT 查询语句 5.1 单表查询 1 SELECT 列1,列2 FROM 表 注:* 指所有列 5.2 满足特定条件查询 1 SELECT * FROM orders WHERE customerid=1; 比较运算符:=,>,=, 50; 给出每个顾客的平均值,而不是全部顾客平均值。 having类似于where,但having只适用于合计与分组。 5.9 选择要返回的行 1 2 3 SELECT name FROM customers LIMIT 0,3; limit 带两个参数,起始行号和返回行数。 行号是已0开始索引的 六、使用子查询 6.1 基本子查询 实例:查找金额最大的订单 1 2 3 SELECT customerid,amount FROM orders WHERE amount=(SELECT MAX(amount) FROM orders); 过程:先查最大金额是多少,然后查该金额的订单信息。 “=”是比较操作符,”=”右边可以插入子查询操作符。 1 2 3 FROM orders ORDER BY amount DESC LIMIT 1; 6.2 子查询操作符 ANY (SOME) 查询t1表c1列,但该列必须大于t2表c1列中任意一个值。 1 2 SELECT c1 FROM t1 WHERE c1 > any (SELECT c1 FROM t2); IN (=any) 查询t1表c1列,但该列必须等于t2表c1列中任意一个值。 1 2 SELECT c1 FROM t1 WHERE c1 IN (SELECT c1 FROM t2); All 查询t1表c1列,但该列必须大于t2表c1列中所有值。 1 2 SELECT c1 FROM t1 WHERE c1 > ALL (SELECT c1 FROM t2); 6.3 关联子查询 1 2 books(ISBN,author,title,price) order_items(orderid,isbn,quantily) 1 2 3 4 SELECT isbn ,title FROM books WHERE NOT EXISTS (SELECT * FROM order_items WHERE order_items.isbn=books.isbn) 首先查询books表中的isbn和title(所有书) 然后将查询结果传入子查询(括号内语句) 接着执行子查询(已被订购的书) 最后将子查询的结果返回主查询(没有被订购的书) exists 是子查询炒作符,只能用在关联子查询中。 6.4 行子查询 实例:在一个表中查找存在于另一个表的行 1 2 3 SELECT c1,c2,c3 FROM t1 WHERE (c1,c2,c3) IN (SELECT c1,c2,c3 FROM t2); 6.5 使用子查询作为临时表 将子查询放在FROM子句中,必须为子查询的结果定义一个别名。 1 2 SELECT * FROM (SELECT customerid,name FROM customers WHERE city=’Box Hill’) AS box_hill_customers; 七、更新数据库记录 1 2 3 4 5 UPDATE 表名 SET 列1=表达式1,列2=表达式2,… WHERE 条件 ORDER BY 条件 LIMIT x,x 实例:修改所有行记录 1 2 UPDATE books SET price=price*1.1; 实例2:修改某一行记录 1 2 3 UPDATE customers SET address=’xxx’ WHERE customerid=4; 八、修改表结构 实例1:修改列数据类型 1 2 ALTER TABLE customers MODIFY name CHAR(70) NOT NULL; 实例2:增加一列 1 2 ALTER TABLE orders ADD tax FLOAT(6,2) after amount; 实例3:删除一列 1 2 ALTER TABLE orders DROP tax; 九、删除数据库记录 1 2 3 4 DELETE FROM 表名 WHERE 条件 ORDER BY 条件 LIMIT x,x 实例1:删除所有行 1 DELETE FROM customers; 实例2:删除某一行 1 2

发表在 数据库技术 | 留下评论

VB 如何把窗体的尺寸设置成1024*768

VB用的是Twip(缇?),系统是Pixel(像素) 觉得VB这一点很垃圾 TWIP和Pixel的转换:15 twip=1 pixel 所以要1024*768就是 w:1024*15 h:768*15

发表在 VB | 留下评论

从EXCEL中的身份证调用出生年月日

=IF(LEN(B3)=15,CONCATENATE(MID(B3,7,4),”-”,TEXT(MID(B3,9,2),”00″),”-”,TEXT(MID(B3,11,2),”00″)),CONCATENATE(MID(B3,7,4),”-”,TEXT(MID(B3,11,2),”00″),”-”,TEXT(MID(B3,13,2),”00″)))

15位:CONCATENATE(MID(B3,7,4),”-”,TEXT(MID(B3,9,2),”00″),”-”,TEXT(MID(B3,11,2),”00″))

18位:CONCATENATE(MID(B3,7,4),”-”,TEXT(MID(B3,11,2),”00″),”-”,TEXT(MID(B3,13,2),”00″))

发表在 其他 | 留下评论

让PHP程序永远在后台运行

PHP里有个函数很有用。这是在最近的开发中才逐渐用到的。
int ignore_user_abort ( [bool setting] )

这个函数的作用是指示服务器端在远程客户端关闭连接后是否继续执行下面的脚本。

setting 参数是一个可选参数。如设置为True,则表示如果用户停止脚本运行,仍然不影响脚本的运行(即:脚本将持续执行);如果设置为False,则表示当用户停止运行脚本程序时,脚本程序将停止运行。

下面这个例子,在用户关闭浏览器后,该脚本仍然后在服务器上继续执行:

<?php
ignore_user_abort(); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
do{
sleep(60); // 休眠1分钟
}while(true); 

?>

除非在服务器上关闭这个程序,否则这断代码将永远执行下去。

————————————————————————-

<?php
ignore_user_abort(); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
echo 'start.<br/>';
while(!file_exists('close.txt')){
$fp = fopen('test.txt','a+');
fwrite($fp,date("Y-m-d H:i:s") . " 成功了!\r\n");
fclose($fp);
sleep(10);
}
echo 'end.<br/>';
?>

 

发表在 PHP/JS/Shell | 留下评论

PHP定时执行任务的实现

用到的函数  ignore_user_abort(),set_time_limit(0),sleep($interval) 
此代码只要运行一次后关闭浏览器即可。 

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
//这里是你要执行的代码
sleep($interval);// 等待5分钟
}while(true);

发表在 PHP/JS/Shell | 留下评论

计算天数

/*日期比较函数,返回天数*/
function compare2Date($date1,$date2)
{
$time1 = $date1 != ” ? strtotime($date1) : time();
$time2 = $date2 != ” ? strtotime($date2) : time();
return abs(($time2 – $time1)/(3600*24));
}
echo compare2Date(’2009-5-1 18:20:10′,’2009-6-8′);
echo compare2Date(’5/1/2009′,’6/8/2009′);
echo compare2Date(’5/1/09′,’6/8/09′);
echo compare2Date(’May 1,2009′,’June 8,2009′);

发表在 PHP/JS/Shell | 留下评论