1. 如何獲取其他伺服器上的文件
在客戶端伺服器的WCF服務代碼里調用ReadFile方法,傳入公司伺服器上文件的物理路徑,即可在客戶端伺服器端獲取到公司伺服器文件的二進制流了,之後可以保存下來,也可以直接回發給客戶客戶端
可以用SQL語句來獲取文件:
select T.c from openrowset(bulk N'D:\DB_Backup\E5KST01\audit_trail_20130419.bak', single_blob) T(c)
2. c語言讀取mysql庫中的數據的程序頭文件怎麼設置
Mysql C API編程步驟
1、首先我們要包含mysql的頭文件,並鏈接mysql動態庫。即添加以下語句:
#include <WinSock2.h> // 進行網路編程需要winsock2.h
#include <mysql.h>
#pragma comment(lib, 「libmysql.lib」)
2、創建MYSQL變數。如:
MYSQL mysql;
3、初始化MYSQL變數。
mysql_init(&mysql);
4、調用mysql_real_connect函數連接Mysql資料庫。mysql_real_connect函數的原型如下:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);
參數說明:mysql–前面定義的MYSQL變數;host–MYSQL伺服器的地址;user–登錄用戶名;passwd–登錄密碼;db–要連接的資料庫;port–MYSQL伺服器的TCP服務埠;unix_socket–unix連接方式,為NULL時表示不使用socket或管道機制;clientflag–Mysql運行為ODBC資料庫的標記,一般取0。連接失敗時該函數返回0。
5、調用mysql_real_query函數進行資料庫查詢。mysql_real_query函數的原型如下:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);
參數說明:mysql–前面定義的MYSQL變數;q–SQL查詢語句;length–查詢語句的長度。
查詢成功則該函數返回0。
6、通過調用mysql_store_result或mysql_use_result函數返回的MYSQL_RES變數獲取查詢結果數據。
兩個函數的原型分別為:
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
這兩個函數分別代表了獲取查詢結果的兩種方式。第一種,調用mysql_store_result函數將從Mysql伺服器查詢的所有數據都存儲到客戶端,然後讀取;第二種,調用mysql_use_result初始化檢索,以便於後面一行一行的讀取結果集,而它本身並沒有從伺服器讀取任何數據,這種方式較之第一種速度更快且所需內存更少,但它會綁定伺服器,阻止其他線程更新任何錶,而且必須重復執行mysql_fetch_row讀取數據,直至返回NULL,否則未讀取的行會在下一次查詢時作為結果的一部分返回,故經常我們使用mysql_store_result。
7、調用mysql_fetch_row函數讀取結果集數據。
上述兩種方式最後都是重復調用mysql_fetch_row函數讀取數據。mysql_fetch_row函數的原型如下:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
參數result就是mysql_store_result或mysql_use_result的返回值。
該函數返回MYSQL_ROW型的變數,即字元串數組,假設為row,則row〔i〕為第i個欄位的值。當到結果集尾部時,此函數返回NULL。
8、結果集用完後,調用mysql_free_result函數釋放結果集,以防內存泄露。mysql_free_result函數的原型如下:
void STDCALL mysql_free_result(MYSQL_RES *result);
9、不再查詢Mysql資料庫時,調用mysql_close函數關閉資料庫連接。mysql_close函數的原型為:
void STDCALL mysql_close(MYSQL *sock);
3. 用WINCC的C腳本如何訪問遠程SQL伺服器上的資料庫
用WINCC的C腳本訪問他的SQL資料庫並不合適!因為本來vc++和VB對比,vb訪問資料庫比VC要方便,容易掌握,快捷最好的方法:採用VB編寫SQL訪問數據,外掛於WINCC。訪問WINCCSQL,用常規的方法是訪問不到的,因為SQLFORWINCC有獨特的訪問方式。 到PLC學習網網站查看回答詳情>>
4. 請教C#、WCF高手,如何訪問遠程伺服器上的資料庫
兩種方式:1.IP+SID方式 2.配置鏈接方式
1..IP+SID方式
[csharp] view plainprint?
DbHelperOracle.connectionString = string.Format(@"Data Source=(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521))
)
(CONNECT_DATA =
(SID = {1})
(SERVER = DEDICATED)
)
);User Id={2};Password={3};",
txtDBServerIP.Text.Trim(), txtOracleSID.Text.Trim(), txtDBUserName.Text.Trim(), txtDBPassword.Text.Trim());
這種方式不需要在Oracle Net Manager管理中添加鏈接配置信息。
2. 2.配置鏈接方式,
在Oracle Net Manager管理中添加鏈接配置信息,然後鏈接字元串如下寫法:
[csharp] view plainprint?
Data Source=TORCL;User Id=myUsername;Password=myPassword;
另外其他的連接方式,參考如下,從其他網站轉來的:
Oracle連接字元串總結
Oracle XE
標准連接
Oracle XE(或者"Oracle Database 10g Express Edition")是一個簡單免費發布的版本。
以下是語法格式:
Driver=(Oracle in XEClient);dbq=111.21.31.99:1521/XE;Uid=myUsername;Pwd=myPassword;
ODBC
新版本連接方式
以下是語法格式:
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
老版本連接方式
以下是語法格式:
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
OLE DB, OleDbConnection (.NET)
標准安全連接
此連接方式使用來自微軟的Provider。
以下是語法格式:
Provider=msra;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
信任連接
以下是語法格式:
Provider=msra;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
標准安全連接
此連接方式使用來自Oracle的Provider。
以下是語法格式:
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
信任連接
以下是語法格式:
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
以下是語法格式:
Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=MyOracleSID)(SERVER=DEDICATED)));User Id=myUsername;Password=myPassword;
Oracle.DataAccess.Client.OracleConnection
標准連接
以下是語法格式:
Data Source=TORCL;User Id=myUsername;Password=myPassword;
帶integrated security的連接
以下是語法格式:
Data Source=TORCL;Integrated Security=SSPI;
帶 ODP.NET 不帶 tnsnames.ora的連接
以下是語法格式:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection
標准連接
以下是語法格式:
Data Source=MyOracleDB;Integrated Security=yes
僅在Oracle8i release 3 或更高版本
指明用戶密與密碼的連接
以下是語法格式:
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
這是另一種連接方式不依賴你的DNS.You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc.
以下是語法格式:
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Some reported problems with the one above and Visual Studio. Use the next one if you've encountered problems.
以下是語法格式:
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
使用連接池
連接池服務如果找不到一個完全匹配連接字元串的連接,他將會創建一個。如果能找到該連接,將會重新使用。
以下是語法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
Windows驗證
以下是語法格式:
Data Source=myOracleDB;User Id=/;
特權連接
使用SYSOPER的特權
以下是語法格式:
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
利用密碼終止函數
當第一次打開連接時,當打開鏈接後,一個密碼過期錯誤被拋出,捕獲這個錯誤並執行OpenWithNewPassword命令行設置新密碼。
以下是語法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConn.OpenWithNewPassword(sTheNewPassword);
代理驗證
以下是語法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;
Core Labs OraDirect (.NET)
標准連接
以下是語法格式:
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
Data Shape
MS Data Shape
以下是語法格式:
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
5. C語言怎樣讀取遠程伺服器的文件用C語言怎樣讀取遠程伺服器的文件
涉及到網路編程,建議你去看下socket編程有FTP協議,蠻簡單的,自己可以去嘗試實現. .。
6. 如何用C++Buildder實現C/S架構中在客戶端讀取異地伺服器的sql資料庫中的表
正常用TDATASET
TFIELD
TQUERY
等好幾個控制項一起用就可以了。
去程序員大本營
CSDN.NET
裡面專門有詳細的論述
7. linux環境下,c語言怎麼讀取WEB伺服器的80埠上頁面的內容
已知url ,host, port;
int s, size;
struct sockaddr_in sin;
struct hostent* phe;
char cmd[256];
char msg_hdr[1000];
char* p;
//准備http中GET 方法的請求。
sprintf(cmd,"GET %s\r\nHTTP/1.1\r\nHost:%s", url, host);
//創建socket
if((s=socket(PF_INET,SOCK_STREAM,0))<0)
return -1;
//取得遠程主機的IP地址,失敗函數返回-1
if((phe = gethostbyname(host)) == NULL)
return -1;
memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(pms->port);
//跟遠程機器建立連接,失敗函數返回-1
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return -1;
//發送GET請求
if(write(s,cmd,strlen(cmd))<0)
return 0;
//從鏈接描述符(連接管道)中讀取傳送過來的數據
if(read(s, msg_hdr, 300)<0)
error;
close(s);
//讀到該文件的大小
if((p=strstr(msg_hdr,"Content-Length"))||(p=strstr(msg_hdr,"Content-length:")))
p+=16;
else
error;
//返回大小
size = atoi(p);
sprintf(cmd,"GET %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nConnection: close\r\nRange: bytes0-%d\r\n\r\n", url, host, size);
//創建套介面
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
return 0;
//取得遠程主機的IP地址,失敗返回0
if((phe = gethostbyname(host)) == NULL)
return 0;
memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(port);
//建立連接
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return 0;
//發送讀取請求
if(write(s,cmd,strlen(cmd))<0)
error;
read(s, buf, BUFSIZE)..............
8. objective-c 中如何獲取伺服器responseObject 返回數據中對象的值
可以強制轉換
NSDictionary *responseDict = (NSDictionary *)responseObject;
NSDictionary *dataDict = [responseDict valueForKey:@"Data"];
NSDictionary *userInfoDict = [dataDict valueForKey:@"UserInfo"];
NSString *MemberId = [userInfoDict valueForKey:@"MemberID"];
NSString *MemberName = [userInfoDict valueForKey:@"MemberName"];
...
[[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@""];
[[NSUserDefaults standardUserDefaults] synchronize];
看起來略繁瑣,推薦可以用第三方來解析這些返回數據,比如JsonKit
9. 客戶端如何讀取伺服器發送的數據
一般來講是客戶端向伺服器發送服務請求,伺服器根據客戶端所發送的服務請求給客戶端發數據。這里包括網路協議和服務認證。你可以再網上下載抓包工具來讀取發送服務請求和返回服務請求的結果。 數據都是二進制、八進制和十六進制相互轉換封包來進行發送的。客戶端向伺服器發送一個請求,客戶端會對該請求認證來確定是否合法。合法則會將數據封包加密反饋給客戶端,客戶端則得到請求結果。具體你可查一些有關網路服務的資料。
10. 怎麼通過C語言讀取網頁裡面的數據
簡單的請求格式
GET /index.php HTTP/1.0
host:www.zixue7.com
當我們和伺服器連接上之後,發送上面的數據過去,伺服器就會返回 index.php 這個頁面給我們。
GET 這個 是表示 以什麼方式請求,HTTP中還有很多其他的請求方式,常用的就 GET POST (更詳細的 可以點開上面 http協議 那個鏈接)
GET 後面緊跟一個空格 然後 給出,要獲取的資源的名稱, /index.php 就表示獲取網站伺服器根目錄下 index.php 執行後所產生的內容,我們也可以改成 GET / HTTP/1.0 這就表示獲取默認首頁的內容 。 GET /1.html HTTP/1.0 就是獲取 伺服器根目錄下 1.html的內容,很容易理解吧。
接下來隔一個空格 跟上 HTTP/1.0 表示 http協議的版本,這個是固定的 。
第二行 host:www.zixue7.com 用來指定 訪問哪個主機。 大家都知道,一個伺服器可以放很多個網站,每個網站有不同的域名,所以我們需要用這個host來指定 我們要訪問的是哪個網站,這樣 才能正確得訪問到我們想訪問的網站。
第一步,連接伺服器。
第二步,按照http協議,發送請求數據,然後就是接受返回的內容。
沒錯,就這么簡單。
在編寫程序之前,我們先用一個小工具來模擬一下這個過程,好讓我們對http協議了解更深入一些。
telnet工具 如果是 win7下的朋友 猛戳這里-->win7開啟telnet功能
到此為止,我假設大家電腦上已經開啟了 telnet功能,正題開始。
telnet 他是一個基於tcp/ip 協議的程序,為我們用戶提供一個 與其他電腦通信的工具,我們可以使用他來和其他電腦進行連接通信。
開始->運行->輸入telnet回車, 出現一個黑框如下。
我們這時就可以輸入命令,來連接遠程主機,比如我們這次是要連接我們自學去論壇 的伺服器,
那麼我們就輸入 open www.zixue7.com 80 然後回車。
open 是打開的意思 後面跟上 要打開那個主機 然後 後面跟上埠, web伺服器默認使用的是80埠,所以 要加上80埠(不加埠 telnet默認是23埠)。
然後會出現下圖的情況,這時候 我們就可以輸入命令了,輸入的命令都將被發送到自學去論壇的伺服器上面。大家注意一下 下圖紅色箭頭所指出的部分,那裡就是一個輸入游標,不用管其他的字。
這就代表 我們已經和遠程主機連接上了,就相當於我們上節課中 客戶端執行到 connect 函數 之後 就是要調用 send函數發送數據了,在這里 我們只需要按鍵盤輸入到黑色窗口中 就會發送到服務端。
我們依次輸入以下內容,(注意,不能按退格,輸入錯誤了,就重新打開telnet,重新操作。)