① 股票軟體運行時打開的數據文件,如何使用vc6同時打開數據文件
共享存取,
股票軟體一般都有自己的格式,除非你知道格式,否則打開也沒用
② VC 讀取SQLite資料庫中的表的數據,該怎麼解決
1、使用insert方法插入記錄
sqlitedatabase的insert方法的簽名為long
insert(string
table,string
nullcolumnhack,contentvalues
values),這個插入方法的參數說明如下:
table:代表想插入數據的表名。
nullcolumnhack:代表強行插入扒前扒null值的數據列的列名。
values:代表一行記錄的數據。
insert方法插入的一行記錄使用contentvalues存放,contentvalues類似於map,它提供了put(string
key,xxx
value)(其中key為數據列的列名)方法用於存入數據、getasxxx(string
key)方法用於取出數據。
例如如下語句:
contentvalues
values=new
contentvalues();
values.put("name","孫悟空"):
values.put("age",500);
//返回新添記錄的行號,該行號春昌是一個內部直,與主鍵id無關,發生錯誤返回-1
long
rowid=db.insert("person_inf",null,values);
2、使用update方法更新數據
sqlitedatabase的update方法簽名為update(string
table,contentvalues
values,string
whereclause,string[]
whereargs),這個更新方法的參數說明如下:
table:代表想要悔敬更新數據的表名。
values:代表想要更新的數據。
whereclause:滿足該whereclause子句的記錄將會被更新。
whereargs:用於為whereargs子句傳遞參數。
例如我們想要更新person_inf表中所有主鍵大於20的人的人名,可調用如下方法:
contentvalues
values=new
contentvalues();
//存放更新後的人名
values.put("name","新人名");
int
result=db.update("person_inf",values,"_id>?",new
integer[]{20});
3、使用delete方法刪除記錄
sqlitedatabase的delete方法簽名為delete(string
table,string
whereclause,string[]
whereargs),這個刪除的參數說明如下:
table:代表想刪除數據的表名。
whereclause:滿足該whereclause子句的記錄將會被刪除。
whereargs:用於為whereargs子句傳入參數。
刪除person_inf表中所有人名以孫開頭的記錄
int
result=db.delete("person_inf","person_name
like
?",new
string[]{"孫_"});
4、使用query方法查詢記錄
sqlitedatabase的query方法簽名為cursor
query(boolean
distinct,string
table,string[]
columns,string
selection,string[]
selectionargs,string
groupby,string
having,string
orderby,string
limit),這個query方法的參數說明如下。
distinct:指定是否去除重復記錄。
table:執行查詢數據的表名。
columns:要查詢出來的列名。
selection:查詢條件子句。
selectionargs:用於為selection子句中佔位符傳入參數值,值在數組中的位置與佔位符在語句中的位置必須一致,否則就會有異常。
groupby:用於控制分組。
having:用於對分組進行過濾。
orderby:用於對記錄進行排序。
limit:用於進行分頁。
例如查詢出person_inf表中人名以孫開頭的數據
cursor
cursor=db.query("person_inf",new
string[]{"_id,name,age"},"name
like
?",new
string
[]{"孫%"},null,null,"personid
desc","5,10");
cursor.close();
③ 請問在vc++6.0中怎麼調用資料庫啊
我感覺現在利用ADO比較多,這個方法連接資料庫比較靈活。ODBC也可以。但是需要創建數據源有時候乎逗拆你要將這個程序換地方可能就會導致找不到數指拍據源從而連接不上數歲棗據庫,我建議你利用ADO的。
④ VC怎麼從編輯框輸入欄位查詢資料庫
你建立的是對話框模式,在初始化的OnInitDialog()里使用ADO類,網上可以找到下載下來include進來,然後利用ADO和字元串strConectMidDB.Format(_T("Provider=sqloledb;Data Source=%s;Initial Catalog=%s;User Id=%s;Password=%s"),strServer,strDB,strUserID,strPwd);去鏈接上資料庫滾大毀。
次仿培分類你就定義幾種輸入對應幾種查詢資料庫語句,用case分類編寫最好,ADO執行sql查詢語句後如果有返回可以rstXX.GetFieldValue("AA",strAA);其中rstXX是ADO的CADODatabase實例,strAA是CString字元串。假設你的顯大備示控制項是CListBox clibXX; clibXX.AddString(strAA);就能將資料庫查詢出來的數據添加進入控制項並顯示。
⑤ VC連資料庫
這個很簡單的,你肯定是通過向導生成的變數吧!哈哈,VC常出現這樣的問題,比如你添加一個按鈕,然還定義響應,在吧按鈕段螞刪除,在重新添加一個按鈕(和前一個按鈕ID一樣),你在添加響應就是另外一個了,這是握伍埋vc的通病。建議你把少的那個變數控制項刪除,記得也要把響應生成的代碼產出,然後重新來一次,就橘緩有了。哈哈!~~
⑥ VC++窗體程序讀取mdb格式的資料庫,顯示到textbox
private void DataBind()
{
DataTable dt = GetData(); //橡拿粗從資料庫獲取數據
txtName.Text=dt.Rows[0]["敏春name"].ToString();
txtSex.Text=dt.Rows[0]["sex"].ToString();
}
在窗體載入梁鎮時調用這個方法。
⑦ vc中cfile如何讀取sdf數據文件中的數據
用CFile來讀取SDF資料庫文件的數據,幾乎是不可能的。
如果你確定SDF是資料庫文件,那麼應該是SQL
SERVER的PDA版本SQLCE的數據文件,這種文件的格式非常復雜,其中包含了數據表、視圖、索引、觸發器、鍵神存儲過程,很多信息甚至是加密格式的,這是一個非公開的專有數據格式,必須用指定的軟體或者開發商(微軟)提供的數搜亮隱據庫鏈接組件來打開。
而CFile,只是以二進制和文本方式打開文世廳件,無法自行處理這些復雜結構。
⑧ 在VC++中如何從資料庫中讀取數據和向資料庫中寫入數據
#include "stdafx.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ADOConn::ADOConn()
{
}
ADOConn::~ADOConn()
{
}
// 初始化—連接資料庫
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM庫環境
::CoInitialize(NULL);
try
{
// 創建Connection對象
m_pConnection.CreateInstance("ADODB.Connection");
// 設置連接字元串,必須是BSTR型或者_bstr_t類型
_bstr_t strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=***;Data Source=***;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯誤信息
AfxMessageBox(e.Description());
}
}
// 執行查詢
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 連接資料庫,如果Connection對象為空,則重新連接資料庫
if(m_pConnection==NULL)
OnInitADOConn();
// 創建記錄集對象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的記錄
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉異常
catch(_com_error e)
{
// 顯示錯誤信息
AfxMessageBox(e.Description());
}
// 返回記錄集
return m_pRecordset;
}
// 執行SQL語句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已經連接資料庫
if(m_pConnection == NULL)
OnInitADOConn();
// Connection對象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 參數RecordsAffected是操作完成後所影響的行數,
// 參數Options表示CommandText的類型:adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存儲過程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void ADOConn::ExitConnect()
{
// 關閉記錄集和連接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 釋放環境
::CoUninitialize();
}
⑨ 如何將搜狐網上的成交明細數據用VC++讀取 http://q.stock.sohu.com/cn/000060/cjmx.shtml
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include<string>
#include<iostream>
#include "windows.h"
using namespace std;
typedef struct
{
int date;//4位元組 int類型也是1
int open;
int high;
int low;
int close;
int amount;
int vol;
int reservation;
} StockData;
StockData stockData;
int read_data(FILE *);
int main (int argc, char *argv[])
{
FILE *fp;
if((fp=fopen("D:\\common\\stock\\jcb_gx\\Vipdoc\\sh\\lday\\sh999999.day","rb"))==NULL)
{
printf("Error: Can^t open file ! ");
exit(0);
}
read_data(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int read_data(FILE *fp)
{
float fn;
while(! feof(fp)){
fread(&stockData,sizeof(StockData),1,fp);
cout<<"單個記錄長度 "<<sizeof(StockData)<<endl;
printf("飢蠢冊日期 %10lu ",stockData.date);
fn=((float)(stockData.open))/100;
printf("開牌價 %8.2f ",fn);
fn=float(stockData.high)/100;
printf("最高價爛宏 %8.2f ",fn);
fn=float(stockData.low)/100;
printf("最低價 %8.2f ",fn);
fn=float(stockData.close)/100;
printf("收盤價 %8.2f ",fn);
printf("多多 %8lu ",stockData.amount);
fn=float(stockData.vol)/100;
printf("成交量 %8.1f ",fn);
printf("reservation %8lu "檔沒,stockData.reservation);
//Sleep(1000);
cout<<endl;
}
return 0;
}
⑩ VC 讀取SQLite資料庫中的表的數據,該怎麼解決
先用sqlite3_open打開資料庫,得到一個struct sqlite3的指針,例如
1
2
struct sqlite3 *db = NULL;
sqlite3_open("資料庫地址" ,&db);
然後
1
2
3
4
5
6
7
8
9
10
11
12
13
char *szError = NULL,**dbResult;
int row,col;
int result = sqlite3_get_table( db,"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name",&dbResult,&row,&col,&szError );
if( result == SQLITE_OK )
{
//dbResult就是查詢結果,row和檔亂轎col分別是返回結果集的行數(包含陪螞表頭)和列數
sqlite3_free_table(dbResult);
}
else
{
//szError是錯行肆誤描述信息
sqlite3_free(szError);
}