- 浏览: 31540 次
- 性别:
- 来自: 杭州
最新评论
文章列表
Luasql原始的oci8中对于存储过程只能支持无参数的存储过程的调用,现在我在里边加入一个stmt结构来支持带参数尤其是对cursor输出,的支持,需要做的就是实现一个statement的userdata来完成需要的工作bind_number, bind_string, bind_cursor:
用到的主要数据结构:
typedef union {
int i;
char *s;
double d;
OCIStmt *c; //add by alien
} column_value;
/*****************
author:a ...
在对Lua语言进行C扩展的时候,注意一个最最重要的就是,关键在于Lua那个栈的管理,对参数的接收和返回都是通过那个栈来实现的,所以一定要深刻理解它的栈管理,有些函数如lua_newuserdata会push到栈上,有些函数会pop如luaL_ref,有些函数只取值并不改变栈状态如luaL_checkstring,随时注意栈状态的变化,这个我们可以用lua_gettop函数来观察栈顶变化来估计栈中的内容,lua和C结合在lua中调试很恶心,只能通过printf来估计
1、关于Lua接口的导出:
lua是通过在C DLL中export一个luaopen_LUAMODALNAM ...
这是在做OCI开发时写的一些测试的代码,基本流程很简单如下:
>>创建环境句柄 OCIEnvCreate(&envhp,OCI_DEFAULT,(dvoid *)0, 0,0,0,0,(dvoid **)0);
>>申请错误句柄 OCIHandleAlloc((dvoid *) envhp,(dvoid **)&errhp, OCI_HTYPE_ERROR,(size_t)0,(dvoid **)0);
>>申请服务器句柄 OCIHandleAlloc((dvoid *)envhp,(dvoid **)&srvhp, OCI_HTY ...
ODBC访问Oracle基本流程和代码:
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sql.h"
#include "sqlext.h"
void check_return( RETCODE rc, HENV henv, HDBC hdbc, HSTMT hs ...
Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,在这个例程中我使用POST方式,提交数据value1与value2,并从服务器得到他们的和(value1 + value2)。
为实现Http访问,微软提供了二套API:WinINet, WinHTTP。WinHTTP比WinINet更加安全和健壮,可以这么认为WinHTTP是WinINet的升级版本。这两套API包含了很多相似的函数与宏定义,呵呵,详细对比请查阅msdn中的文章“Porting WinINet Applications to WinHTTP”,在线MSDN连接:http://ms ...
下面是一段php socket编程的例子,当然也可以使用fsockopen
<?php
error_reporting(E_ALL);
echo "<h2>TCP/IP Connection</h2>\n";
/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');
/* Get the IP address for the target host. */
$address = gethostbyname(' ...
echo $a=ip2long ("202.97.224.68");
echo "<br />-<br />";
echo long2ip ($a);
注:这里面有一个要注意的地方,大概由于PHP无法正确判断转换完的数字类型,出现负数的情况。
这时可用bindec(decbin(ip2long($IP))) 处理一下。
在开发的时候,有时候数据不是自己函数所需要的时候,php会很不友好的提示一个warning。今天遇到了这样的问题,在使用json_decode时,因为数据是通过curl获取的,所以有时候获取的数据格式不对,本来是想获取string类型的json字符串,但是接口有时会返回一个array的数据,导致了php显示一个warning,本来php本身就具有屏蔽功能,修改php.ini或者在php文件里配置,但是这两个我都没权限修改,最后使用“@”,使用如下:
@json_decode($date, true);
如果想直接通过编程实现屏蔽错误,可以在开始加上error_reportin ...
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻 ...
《Socket I/O模型全接触》
作 者: flyinwuhan (制怒·三思而后行)
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。
一:select模型
二:WSAAsyncSelect模型
三:WSAEventSelect模型
四:Overlapped I/O 事件通知模型
五:Overlapped I/O 完成例程模型
六:IOCP模型
老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。
这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I ...
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
// Need to link with Ws2_32.lib, Mswsock.lib, and Advapi32.lib
#pragma comment (lib, "Ws2_32.lib")
#pragma comment ...
配合WSAEventSelect模型的Server使用,测试效果用。做了些修改,修改为多线程实现IO业务处理。
// g_wsaEventSelect_Client.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <Winsock2.h>
#include <malloc.h>
#pragma comment(lib,"Ws2_32.lib")
SOCKET g_sock ...
accept(接受socket连线)
相关函数 socket,bind,listen,connect
表头文件 #include
#include
定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);
函数说明 accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen() ...
1.SOCKET 通讯TCP方式一般流程图
服务端 客户端
socket() socket()
| ...
一.firePHP是什么
firePHP是一款ff的插件,用于将php调试信息输出到firebug控制台。
二.firePHP有什么用
在正式发布后,又不影响页面显示的情况下,调试php,将调试信息输出到控制台
三.firePHP安装
1。前提:需要安装ff的插件---firebug
2。安装:
a.在服务器端安装FirePHPCore 组件
b.将包放到项目目录下(假设firePHPCore放到项目根目录下)
c.服务端使用方式(导入包)
d、开启客户端
开启Firebug 控制台、脚本、网络。
将当前网站添加入FirePHP允许站点
3.使用
require('FirePH ...