駕照理論考試速成,模訪一個軟件做成的
數據庫是mssql2005,在JzData.rar文件中,附加即可;
如果你使用的是sql 2000的數據庫,請將debug目錄下的access數據庫jzdata.mdb轉換成sql server數據庫,在查詢分析器里執行:
exec sp_configure 'show advanced options',1 reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure
create database jz
go
use jz
SELECT *
INTO car
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\GCLsoft\jz\Debug\jzdata.mdb";User ID=Admin;Password=' )...car
SELECT *
INTO moto
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\GCLsoft\jz\Debug\jzdata.mdb";User ID=Admin;Password=' )...moto
use jz
alter table car alter column id int not null
go
alter table car add constraint pkKey1 primary key (id)
alter table moto alter column id int not null
go
alter table moto add constraint pkKey2 primary key (id) --設置主鍵
數據庫名字:jz
代碼是C++寫的,用vc6打開
代碼寫的不好,如果你有什么好的建議,歡迎與我聯系
源代碼下載地址

在sql2000下,點考試會出現錯誤:如果語句中包含 UNION 運算符,那么 ORDER BY 子句中的項就必須出現在選擇列表中。解決方法,改用視圖,在代碼里要修改一下:
if exists
(select * from dbo.sysobjects where id = object_id(N'[dbo].[v1]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view v1
go
create view v1 as
select top 30 * from car where zhanjie=1 ORDER BY NEWID()
go
if exists
(select * from dbo.sysobjects where id = object_id(N'[dbo].[v2]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view v2
go
create view v2 as
select top 20 * from car where zhanjie=2 ORDER BY NEWID()
go
select * from v1
union all
select * from v2
如果不想使用視圖,sql語句這樣寫,也可以解決問題:
select * from
(
select * from
(
select top 30 * from car where zhanjie=1 ORDER BY NEWID()
) as a1
union all
select * from
(
select top 20 * from car where zhanjie=2 ORDER BY NEWID()
) as a2
) as a3
posted @
2010-01-29 13:22 fly931 閱讀(1378) |
評論 (0) |
編輯 收藏
輸入漢字,點擊<開始作詩>按鈕即可.
輕松制作藏頭詩,只需輸入幾個漢字,系統就可以自動生成具有唐詩風格的藏頭詩。可以用來做姓名藏頭詩、愛情藏頭詩、祝福藏頭詩等等。
綠色軟件,大小只有2.8M
v2.0 下載地址
posted @
2009-11-10 21:09 fly931 閱讀(1042) |
評論 (1) |
編輯 收藏
不用登錄qq、阿里旺旺,也可以知道對方在不在線,QQ在線查看器。也可用來查看對方是否對你“隱身可見”或“在線對其隱身”。
好友上下線提醒,輸入對方QQ,點擊“增加”即可,可設置自動刷新。
v1.1.5 聊天工具支持:騰迅QQ,淘寶旺旺,阿里巴巴貿易通,對方上線下線可即時提醒
v1.5 改正最新的QQ不能判斷是否在線的bug
v1.6 完善了界面,增加了導入大量QQ號的功能
v1.7
下載地址 保存了QQ上下線的記錄,可以將QQ上線、下線提醒發送到您的郵箱進行通知
posted @
2009-11-10 20:52 fly931 閱讀(1022) |
評論 (4) |
編輯 收藏
搶占名人博客的沙發,名人一寫博馬上知道,實時監視,讓你輕而易舉坐得了沙發
添加方法:復制你想訂閱的博客Rss地址,點擊“添加Rss”按鈕即可完成添加;
v1.7
下載地址
怎樣監視QQ空間:
點擊“添加博客”按鈕,出現下面的對話框,把“QQ空間”選項選中,在“用戶名/號碼”一欄寫上你要監視的QQ號(當然前提是他的QQ空間沒有設置密碼),添加即可。如果是其他博客,一般是寫出現在博客地址中的用戶名,如韓寒的新浪博客的用戶名是twocold,在用戶名一欄中寫上twocold即可完成添加。

什么是RSS訂閱:
博客或新聞的網站上常常可以看到:

或

,點擊這個圖案,把它的網址復制粘貼到軟件的最上面的RSS一欄中,點“添加Rss”即可完成添加。
你也可以添加新聞訂閱,只要是Rss都可以用<博客沙發王〉訂閱。
檢測到更新后,會有聲音提示,屏幕右下角提示。
下載地址
posted @
2009-08-30 02:01 fly931 閱讀(2188) |
評論 (11) |
編輯 收藏
短信群發軟件 1.6
快速自動地群發和回復短信,有自動發送訂單管理,登錄賬戶管理,短信收發日志導出,查詢短信記錄,新短信來時播放鈴聲提醒等功能;
必須安裝Microsoft SQL Server 2000數據庫,( 1.6Access版本(無須安裝SQL Server):下載地址 )
硬件需要:短信貓
使用說明:
1.將數據庫文件(MYNOTE_Log.LDF,MYNOTE_Data.MDF)復制到SQL Server安裝路徑下的“Data”文件夾中。打開SQL Server 2000中的“企業管理器”,然后展開本地服務器,在“數據庫”數據項上單擊鼠標右鍵,在彈出的快捷菜單中選擇“所有任務”/“附加數據庫”菜單項。將彈出“附加數據庫”對話框,選擇要附加數據庫的.mdf文件。單擊【確定】按鈕,即可完成數據庫的附加操作
2.收發短信前請先連接短信貓,插入SIM手機卡
3.導入txt電話號碼文件應以start開始,end結束,電話號碼換行顯示
4.SQL數據庫設置里,主機名為127.0.0.1或(local)
密碼要改成你的密碼,再按保存修改才生效
數據庫名字是MYNOTE
1.0版本:下載地址
1.1版本:下載地址 修改了查詢收發日志的一個錯誤,修改了連接數據庫的設置
1.2版本:下載地址 修改了插入常用短信短語中刪除的錯誤,修改了發短信內容字數140個的限制
1.5版本:下載地址 改正了自動發送短信的功能,減少了不必要的數據
1.5Access版本(無須安裝SQL Server):下載地址
1.5.5Access版本(無須安裝SQL Server):下載地址 改正自動發送短信訂單的一個錯誤,MSSQL版本的沒有錯誤
1.6Access版本(無須安裝SQL Server):下載地址

posted @
2009-05-15 20:46 fly931 閱讀(707) |
評論 (0) |
編輯 收藏
v3.0 加快了詩詞數據加載速度,詩詞總頁數達4500頁
下載地址v3.1.5
下載地址
v3.2 完善了所有功能
下載地址
華軍下載: http://www.newhua.com/soft/84610.htm
霏凡下載: http://www.crsky.com/soft/16464.html
中關村下載:http://xiazai.zol.com.cn/detail/36/356020.shtml

下載地址
《唐詩宋詞》的精簡版:《唐詩宋詞三百首》,只收錄唐詩300首,下載地址
SQL優化前后的代碼:


void CLeftTree::ByDynasty()


{ CTreeCtrl* m_Tree=&GetTreeCtrl();
CString mytempsql;
// mytempsql=_T("select A.d_dynasty AS MYDYNASTY,A.d_author AS MYAUTHOR,P.d_title AS MYTITLE FROM\

/**//// ((t_author AS A RIGHT JOIN t_dynasty AS D ON A.d_dynasty=D.d_dynasty)\
// LEFT JOIN t_poetry AS P ON A.d_author=P.d_author )ORDER BY D.d_num ASC,A.d_author ASC ,P.d_author ASC");
mytempsql.Format(_T("select D.d_dynasty AS MYDYNASTY,A.d_author AS MYAUTHOR,P.d_title AS MYTITLE FROM\
((t_author AS A RIGHT JOIN t_dynasty AS D ON A.d_dynasty=D.d_dynasty) LEFT JOIN t_poetry AS P ON A.d_author=P.d_author )\
ORDER BY D.d_num ASC,%s ASC ,%s ASC"),str_AuthorByTime,str_ShiByTime);
myado.OnInitADO();
myado.m_pRecordset=myado.GetRecordSet((_bstr_t)mytempsql);
CString str_myDynasty,str_myAuhor,str_myTitle;
_variant_t varD,varA,varT;
try

{
while(!myado.m_pRecordset->adoEOF)

{
// varD = myado.m_pRecordset->GetCollect("MYDYNASTY");
// if(varD.vt!=VT_NULL)
// {
str_myDynasty=(TCHAR*)(_bstr_t)myado.m_pRecordset->GetCollect("MYDYNASTY");
if(wcscmp(str_myDynasty,oldD)!=0)

{
TreeItem[0]=m_Tree->InsertItem(str_myDynasty);
oldD=str_myDynasty;
// oldA=_T("");
}
// }
varA=myado.m_pRecordset->GetCollect("MYAUTHOR");
if(varA.vt!=VT_NULL)

{ str_myAuhor=(TCHAR*)_bstr_t(varA);
if(wcscmp(str_myAuhor,oldA)!=0)

{
TreeItem[1]=m_Tree->InsertItem(str_myAuhor,TreeItem[0]);
oldA=str_myAuhor;
}
}
varT=myado.m_pRecordset->GetCollect("MYTITLE");
if(varT.vt!=VT_NULL)

{
str_myTitle=(TCHAR*)_bstr_t(varT);
if(wcscmp(str_myTitle,oldT))

{
TreeItem[2]=m_Tree->InsertItem(str_myTitle,TreeItem[1]);
oldT=str_myTitle;
}
}
myado.m_pRecordset->MoveNext();
}
myado.ExitConnect();
}
catch(_com_error e)

{
MessageBox(e.Description());
return;
}

/**//* CTreeCtrl* m_Tree=&GetTreeCtrl();
try
{
myado.OnInitADO();
myado2.OnInitADO();
myado4.OnInitADO();
CString sqltempsql=_T("select d_dynasty from t_dynasty order by d_num asc");
myado.m_pRecordset=myado.GetRecordSet((_bstr_t)sqltempsql);
while(!myado.m_pRecordset->adoEOF)
{
str_dynasty=(TCHAR*)(_bstr_t)myado.m_pRecordset->GetCollect("d_dynasty");
TreeItem[0]=m_Tree->InsertItem(str_dynasty,0,0);
sql.Format(_T("select d_author from t_author where d_dynasty='%s' order by %s asc"),str_dynasty,m_strAuthorByTime);

myado2.m_pRecordset=myado2.GetRecordSet((_bstr_t)sql);
while(!myado2.m_pRecordset->adoEOF)
{
str_tempauthor=(TCHAR*)(_bstr_t)myado2.m_pRecordset->GetCollect("d_author");
TreeItem[1]=m_Tree->InsertItem(str_tempauthor,0,0,TreeItem[0]);
OnShowTitles(str_tempauthor);
myado2.m_pRecordset->MoveNext();
}

myado.m_pRecordset->MoveNext();
}
myado4.ExitConnect();
myado2.ExitConnect();
myado.ExitConnect();
}
catch(_com_error e)
{
MessageBox(e.Description());
return;
}*/
}
posted @
2009-05-01 22:20 fly931 閱讀(1502) |
評論 (4) |
編輯 收藏
解決了打開緩慢的問題,先顯示主窗口,再加載詩詞數據
下載地址
v2.6版本:增加了搜索詩人;在閱讀模式是,點下拉菜單時發生變化;
詩詞總數達到4000頁 下載地址
v2.7版本: 改正了部分單引號不能查詢和保存的錯誤;
下載地址
v2.7繁體版本:在繁體字操作系統下可正常顯示詩詞,用Unicode編碼,詩詞數據尚未改成繁體字
下載地址
v2.8版本下載:用Unicode編碼,在不同語言的操作系統下可正常顯示詩詞
下載地址
推薦下載v2.9版本:支持繁體操作系統,詩詞總頁數達到4300頁
下載地址

下載地址
很幼稚的方法,在debug下有錯誤,不過沒更好的方法了,代碼如下:


void CTangshiView::OnInitialUpdate()


{
CFormView::OnInitialUpdate();

GetParentFrame()->RecalcLayout();
ResizeParentToFit();
AddComboKindData();
SetFirstFont();
b_MidText=GetPrivateProfileInt("setting","midtext",0,IniFile);
SetTimer(100,0,NULL);
// KillTimer(100);
}

void CTangshiView::OnTimer(UINT nIDEvent)


{
if(nIDEvent==100)

{
CMainFrame* m_p=(CMainFrame*)AfxGetApp()->m_pMainWnd;
m_p->m_LeftTree->AddTreeData();
m_p->m_LeftTree->GetAllNum();
char mystrbuf[102];
CString strtemp_Dynasty,strtemp_Author,strtemp_Title;
GetPrivateProfileString("load","dynasty","當代",mystrbuf,102,IniFile);
strtemp_Dynasty=mystrbuf;
GetPrivateProfileString("load","author",NULL,mystrbuf,102,IniFile);
strtemp_Author=mystrbuf;
GetPrivateProfileString("load","title",NULL,mystrbuf,102,IniFile);
strtemp_Title=mystrbuf;
m_p->m_LeftTree->FirstLoad(strtemp_Dynasty,strtemp_Author,strtemp_Title);

// SASSSSSSSSSSSSSSSSSSSSSS
m_p->b_midplay=GetPrivateProfileInt("setting","midplay",1,IniFile);
GetPrivateProfileString("setting","mid","tangshi.mid",m_p->buf,1024,IniFile);
if(m_p->b_midplay)
m_p->PlaySoundAA(m_p->buf);
KillTimer(100);
//EEEEEEEEEEEEEEEEEEEEEEEEEEEEE
}
CFormView::OnTimer(nIDEvent);
}
搜索的代碼:


void CSearch::OnButtonSearch()


{
UpdateData();
m_strSearch.TrimLeft();
if(m_strSearch=="")

{
MessageBox("請輸入要搜索的詩詞","唐詩宋詞",64);
m_EditSearch.SetFocus();
return;
}
if(m_checkBaidu)

{
ShellExecute(NULL,NULL,"http://www.baidu.com/s?wd="+m_strSearch,NULL,NULL,SW_SHOWNORMAL);
// return;
}

if(m_checkBaike)

{
ShellExecute(NULL,NULL,"http://baike.baidu.com/list-php/dispose/searchword.php?word="+m_strSearch,NULL,NULL,SW_SHOWNORMAL);
// return;
}
CString sql_search, sql_or,sql_num;
sql_or=m_checkTitle?"d_title":m_checkAuthor?"d_author":"d_poetry";
myado.OnInitADO();//GROUP BY number HAVING COUNT(number) > 1
// sql_search.Format("select count(*) as num from t_poetry where %s like '%'%s'%'",sql_or,m_strSearch);
CString temp_strSearch;
temp_strSearch=m_strSearch;
temp_strSearch.Replace("'","''");
sql_search.Format("select distinct d_title,d_poetry,d_author from t_poetry where %s like '%s%s%s' order by d_author",sql_or,"%",temp_strSearch,"%");
myado.m_pRecordset.CreateInstance(__uuidof(Recordset));
myado.m_pRecordset->Open((_bstr_t)sql_search,myado.m_pConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if(myado.m_pRecordset->RecordCount>0)

{
int j;
j=0;
m_List.DeleteAllItems();
while(!myado.m_pRecordset->adoEOF)

{
m_List.InsertItem(j,"");
m_List.SetItemText(j,0,(char*)(_bstr_t)myado.m_pRecordset->GetCollect("d_title"));
m_List.SetItemText(j,1,(char*)(_bstr_t)myado.m_pRecordset->GetCollect("d_poetry"));
m_List.SetItemText(j,2,(char*)(_bstr_t)myado.m_pRecordset->GetCollect("d_author"));
myado.m_pRecordset->MoveNext();
j++;
}
CString str_myshow;
str_myshow.Format("共找到“%s”%d篇",m_strSearch,j);
SetDlgItemText(IDC_STATIC_SHOW,str_myshow);
}
else

{
SetDlgItemText(IDC_STATIC_SHOW,"未找到“"+m_strSearch+"”,百度一下吧!");
}
myado.ExitConnect();
}
posted @
2009-04-28 10:32 fly931 閱讀(1413) |
評論 (5) |
編輯 收藏