C
语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C
标准里面的内容,它是从C
标准的声明规定中归纳出来的方法。C
标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:
The
right-left rule: Start reading
the declaration from the
innermost parentheses, go
right, and then go
left. When you encounter parentheses,
the direction should be
reversed. Once everything in
the parentheses has&nb ......
该程序很简单,就是用C从ORACLE,把当前日期显示出来就OK,作为一个简单的DEMO
(一)写PRO*C
/*===========================================================================
* pro*c编译方法:
* 预编译 proc test.pc
* 编译 gcc -o test test.c $ORACLE_HOME/lib/libclntsh.so
* 作者 foxliu
* 时间 2009-10
*============================================================================*/
#include <stdio.h>
#include <sqlca.h>
int main(int argc,char **argv)
{
/*声明SQL变量*/
EXEC SQL BEGIN DECLARE SECTION;
/*VARCHAR预编译后为struct { unsigned short len; unsigned char arr[20];}*/
VARCHAR user[20],pass[20],tnsname[20];
char crruentDate[15];
EXEC SQL END DECLARE SECTION;
/*声明C变量*/
int i=0;
&n ......
---- 在数据库的应用开发中,常常会遇到性能和代价的之间矛盾。以作者在开发股市行
情查询和交易系统中遇到的问题为例,要在实时记录1000多只股票每分钟更新一次的行
情数据的同时,响应大量并发用户的数据查询请求。考虑到性价比和易维护性,系统又
要求在基于PC服务器,Windows NT平台的软硬件环境下实现。开始,我们采用了MS SQL
Server 6.5 作为数据库系统,用Visual C++ 6.0开发了访问数据库的前端,应用ODBC
数据接口,在进行了大量的数据库配置和程序优化后,发现仍不能满足性能要求。后采
用SQL Server的DB-Library接口,绕过了ODBC解释层,可以每秒更新行情数据30次,同
时支持20-30个左右的并发用户进行行情查询,基本满足要求(单台PC服务器,单PII3
50 CPU,内存128M,SCSI硬盘)。有没有可能进一步提高系统的性能和负载能力呢?经
过分析,数据库服务器是系统的瓶颈。当然,可以采用UNIX服务器+大型数据库的系统
平台,但其开发、运行、维护的费用比微机+Windows NT平台的费用高出数倍。我们在
其它一些系统的开发中,也经常遇到这样的矛盾。如何在微机平台上建立大容量、高效
率、易维护、高性价比的数据库系统呢?
---- 考 ......
---- 在数据库的应用开发中,常常会遇到性能和代价的之间矛盾。以作者在开发股市行
情查询和交易系统中遇到的问题为例,要在实时记录1000多只股票每分钟更新一次的行
情数据的同时,响应大量并发用户的数据查询请求。考虑到性价比和易维护性,系统又
要求在基于PC服务器,Windows NT平台的软硬件环境下实现。开始,我们采用了MS SQL
Server 6.5 作为数据库系统,用Visual C++ 6.0开发了访问数据库的前端,应用ODBC
数据接口,在进行了大量的数据库配置和程序优化后,发现仍不能满足性能要求。后采
用SQL Server的DB-Library接口,绕过了ODBC解释层,可以每秒更新行情数据30次,同
时支持20-30个左右的并发用户进行行情查询,基本满足要求(单台PC服务器,单PII3
50 CPU,内存128M,SCSI硬盘)。有没有可能进一步提高系统的性能和负载能力呢?经
过分析,数据库服务器是系统的瓶颈。当然,可以采用UNIX服务器+大型数据库的系统
平台,但其开发、运行、维护的费用比微机+Windows NT平台的费用高出数倍。我们在
其它一些系统的开发中,也经常遇到这样的矛盾。如何在微机平台上建立大容量、高效
率、易维护、高性价比的数据库系统呢?
---- 考 ......
当下定决心去做一件事情的时候,就没有什么可以阻挡我!譬如去睡觉--! from 《觉主语录》
令我忐忑不安的高数学位证考试过去了,结果还是满意的。虽然花了3周的时间去准备复习数学,但是我却发现,真正去学习的时候只有最后那两天,以往的时间全是浪费掉了。遂明
白,为什么同一种环境下的人,有的成了天才,有的沦为平庸。
终于可以比较放心的继续编译了。《编译原理》看到了第三章,词法分析,目前需要值得注意的应该是正则表达式(这个版本的书上翻译为正规表达式,难道别的表达式都不正规么?)有几个分析出来的要点:
1、文法和正则表达式合起来可以表示一段语言的规则,其中文法用来表示的语法,而正则表示的词法。也就是说文法的最小单位是词,正则的最小单位是字。这样可以有效地把词法和语法分别开来。
2、正则和文法也不是万能的。书中说正则不能处理嵌套或均衡的结构,举得例子是配对的括号。我想的具体例子例是html的标签例如斜
体<i>something</i>这个标签如果定义为标识tag的话,里面的something也可能是tag,这样就同级嵌
套,正则是不能表达的(正则只能嵌套以前定义的标识)。而文法就没有这个要求,故文法可以表示。还有一个很疑惑 ......
首先安装必需的开发
包
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
安装MYSQL的C语言开发包
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
把lib文件拷贝到公用
sudo cp /usr/lib/mysql/* /usr/lib/
建立一个新文件test.cpp
vim test.cpp
输入内容
#include
#include
#include "/usr/include/mysql/mysql.h"
int main() {
MYSQL mysql;
mysql_init(&mysql);
}
ctrl+O保存ctrl+x退出。
然后编译
g++ -lmysqlclient test.cpp -o test
运行
./test
如果什么都没提示,没错误,就说明成功了。
下面是自己写的一个小程序:查询mysql进行弱点关联。
#include
#include
#include
#include
#include "/usr/include/mysql/mysql.h"
void asso_1(){
MYSQL mysql_conn; /* Mysql connection handle */
MYSQL_RES *mysql_result1, *mysql_result2, *mysql_result3; /* Result handle */
MYSQL_ROW mysql_row1, mysql_row2, mysql_row3; /* Row data */
int f1, f2, num_row1, num_col1, num_row2, num_col2;
printf("Start associatio ......
首先安装必需的开发
包
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
安装MYSQL的C语言开发包
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
把lib文件拷贝到公用
sudo cp /usr/lib/mysql/* /usr/lib/
建立一个新文件test.cpp
vim test.cpp
输入内容
#include
#include
#include "/usr/include/mysql/mysql.h"
int main() {
MYSQL mysql;
mysql_init(&mysql);
}
ctrl+O保存ctrl+x退出。
然后编译
g++ -lmysqlclient test.cpp -o test
运行
./test
如果什么都没提示,没错误,就说明成功了。
下面是自己写的一个小程序:查询mysql进行弱点关联。
#include
#include
#include
#include
#include "/usr/include/mysql/mysql.h"
void asso_1(){
MYSQL mysql_conn; /* Mysql connection handle */
MYSQL_RES *mysql_result1, *mysql_result2, *mysql_result3; /* Result handle */
MYSQL_ROW mysql_row1, mysql_row2, mysql_row3; /* Row data */
int f1, f2, num_row1, num_col1, num_row2, num_col2;
printf("Start associatio ......
首先安装必需的开发
包
sudo apt-get install gcc g++ libgcc1 libg++ make gdb
安装MYSQL的C语言开发包
sudo apt-get install libmysql++-dev libmysql++2c2a libmysqlclient15-dev libmysqlclient15off
把lib文件拷贝到公用
sudo cp /usr/lib/mysql/* /usr/lib/
建立一个新文件test.cpp
vim test.cpp
输入内容
#include
#include
#include "/usr/include/mysql/mysql.h"
int main() {
MYSQL mysql;
mysql_init(&mysql);
}
ctrl+O保存ctrl+x退出。
然后编译
g++ -lmysqlclient test.cpp -o test
运行
./test
如果什么都没提示,没错误,就说明成功了。
下面是自己写的一个小程序:查询mysql进行弱点关联。
#include
#include
#include
#include
#include "/usr/include/mysql/mysql.h"
void asso_1(){
MYSQL mysql_conn; /* Mysql connection handle */
MYSQL_RES *mysql_result1, *mysql_result2, *mysql_result3; /* Result handle */
MYSQL_ROW mysql_row1, mysql_row2, mysql_row3; /* Row data */
int f1, f2, num_row1, num_col1, num_row2, num_col2;
printf("Start associatio ......
下载地址:/download/rar/tot-cms-5.5(sp2).rar
网址:http://www.totcms.com/html/200910-30/20091030001212.htm
更新说明:
1、增加了自定义函数功能,只要管理员熟悉SQL查询,就可以使用普通SQL语法查询数据库生成前台静态HTM记录。
2、文章添加采取两级目录保存,不是使用原来的三层目录方式。
3、解决修改标签时分类不能显示原来分类的问题。
4、修改wap手机访问时乱码的问题
5、修改生成SiteMap在提交到Google出错的问题
6、修改默认2009模板中的路径为相对路径,方便管理员转移转换域名。
7、修改获取子栏目标签生成HTM代码中A标记的错误语法。
附:自定义函数说明
·自定义函数说明
添加函数:
添加自定义函数时,需要注意“函数名字”只能使用英文字母或数字。
函数内容是指要执行查询的SQL语句,可以在编写的时候,使用“测试Sql”按钮测试查询的反映结果集。
添加标签:
假如我们添加了一个自定义函数,其中:
函数名:Tot_Func
函数内容:SELECT TOP 10 id,pagepath,title from news ORDER BY id DESC
那么我们可以设计以下标签:
<ul>
$Sub[Tot_Func]$
<li>$1<a href="$2">$3</a> ......