㈠ sql*Plus和iSQL*Plus的區別
一個是在桌面上運行的 一個是IE上運行的 我記得是這樣
㈡ CListCtrl控制項如何排序
給樓主一個示例,可以研究一下。
1)是一個SDI程序
2)在OnInitialUpdate中對CListCtrl控制項進行初始化
3)添加LVN_COLUMNCLICK控制項通知消息的處理函數(切換到「類視圖」,點選CXXXView類,在屬性窗口中點選「消息」標簽頁,選擇「=LVN_COLUMNCLICK」進行添加)
4)回調函數為pfnCompare,為了獲取文本內容,零時自定義了一個數據結構CompareInfo,通過LVN_COLUMNCLICK消息處理函數傳遞給回調函數pfnCompare。
5)為CListCtrl提供了兩套比較方案的代碼段
6)使用了TRACE,可以在調試器的「輸出」窗口中查看比較情況的信息輸出,TRACE無法正確顯示中文,為了能顯示中文需要添加頭文件#include <locale.h>及代碼行_tsetlocale(LC_CTYPE, _T("chs"));使TRACE支持中文輸出
代碼片段如下:
void CListView_SortView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: 調用 GetListCtrl() 直接訪問 ListView 的列表控制項,
// 從而可以用項填充 ListView。
static BOOL fFirst = TRUE;
if (fFirst) {
CListCtrl& list = GetListCtrl();
list.ModifyStyle(0, LVS_REPORT);
LPCTSTR pColumnTitle[] =
{
_T("第一列"), _T("第二列"), _T("第三列"), _T("第四列")
};
for (int col = 0; col < 4; col++) {
list.InsertColumn(col, pColumnTitle[col]);
}
LVITEM item;
item.mask = LVIF_PARAM;
for (int row = 0; row < 10; row++) {
item.iItem = row;
item.iSubItem = 0;
item.lParam = row;
list.InsertItem(&item);
}
for (int row = 0; row < 10; row++) {
for (int col = 0; col < 4; col++) {
CString strText;
strText.Format(_T("第%d行,第%d列"), row, col);
list.SetItemText(row, col, strText);
}
}
CDC* pDC = GetDC();
CSize size = pDC->GetTextExtent(CString(_T("第10行,第4列")));
ReleaseDC(pDC);
for (int col = 0; col < 4; col++) {
list.SetColumnWidth(col, size.cx + 5);
}
fFirst ^= TRUE;
}
}
typedef struct tagComparisonInfo
{
CListView_SortView* pThis;
LPNMLISTVIEW pNMLV;
} ComparisonInfo, *PComparisonInfo;
int CALLBACK pfnComare(LPARAM lParam1, LPARAM lParam2, LPARAM lParam3) {
_tsetlocale(LC_CTYPE, _T("chs"));
static int nCount = 0;
//---------- lParam comparison ----------//
//根據自定義數據lParam做比較,lParam是當使用InsertItem時被指定
//LPNMLISTVIEW pNMLV = (LPNMLISTVIEW)lParam3;
//TRACE(_T("[%02d]第%d列做比較, lParam1 = %d(行), lParam2 = %d(行)\n"),
// nCount++, pNMLV->iSubItem, lParam1, lParam2);
//return ((int)(lParam2 - lParam1));
//---------- end lParam comparison ----------//
//---------- text comparison ----------//
//根據文本做比較
PComparisonInfo pInfo = (PComparisonInfo)lParam3;
CString strText1 = pInfo->pThis->GetListCtrl().GetItemText((int)lParam1, pInfo->pNMLV->iSubItem);
CString strText2 = pInfo->pThis->GetListCtrl().GetItemText((int)lParam2, pInfo->pNMLV->iSubItem);
TRACE(_T("[%02d]第%d列做比較, lParam1 = %d(行), text = %s, lParam2 = %d(行), text = %s\n"),
nCount++, pInfo->pNMLV->iSubItem, lParam1, (LPCTSTR)strText1, lParam2, (LPCTSTR)strText2);
return (-(lstrcmp(strText1, strText2)));
//---------- end text comparison ----------//
}
void CListView_SortView::OnLvnColumnclick(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: 在此添加控制項通知處理程序代碼
//---------- lParam comparison ----------//
//GetListCtrl().SortItems(pfnComare, (DWORD_PTR)pNMLV);
//---------- end lParam comparison ----------//
//---------- text comparison ----------//
ComparisonInfo info;
info.pNMLV = pNMLV;
info.pThis = this;
GetListCtrl().SortItems(pfnComare, (DWORD_PTR)&info);
//---------- end text comparison ----------//
*pResult = 0;
}
㈢ sql 過程這個怎麼寫,要把@sql執行結果賦值給@i。
1、這個語法是錯誤的。
2、也不能用:SET @sql = N'SELECT @i = COUNT(1) ...',
- 因為@sql是一個完整的執行體,@i必須在其中定義。
- 定義在其中也不行,因為傳遞不出來
3、可行的方法:
A)使用中間表來過渡
- 雖然@sql是動態的,但是可以將結果保存到中間表中
- 中間表是固定的,因此EXEC()完後,立即訪問該表,可以得到數據,從而傳遞出來
B)使用sp_ExecuteSQL --推薦
EXEC sp_ExecuteSQL @sql, @ParamsDefinition, @Param1, @Param2...
㈣ Oracle 9i中如何使用isqlplus
如果要以以Sysdba的身份登陸,則需要進行以下操作:1。創建認證口令文件:
C:\oracle\ora92\Apache\Apache\bin>htpasswd
C:/oracle/ora92/sqlplus/admin/iplusdba.pw
adminAutomatically
using
MD5
format
target="_blank">http://machine_name.domain:7778/isqlplusdba這需要你先輸入http
server的口令,就是上面設置的admin用戶和它的密碼。3。上述步驟完成後就會看見isqlplusdba的IE界面,然後輸入sysdba身份的用戶和密碼即可
㈤ c語言 順序表 排序
///是不是要這樣,
#include
#define
MAXSIZE
10
//
待排順序表最大長度
typedef
int
KeyType;
//
關鍵字類型為整數類型
typedef
struct
sqlist
{
KeyType
r[MAXSIZE+1];
//
r[0]閑置
int
length;
//
順序表長度
}SqList;
//建立順序表//
SqList
InputSList()
{int
x;SqList
L;
L.length=0;
printf("\n請輸入數據,結束輸入-1!\n");
scanf("%d",&x);
while(x!=-1)
{
L.r[++L.length]=x;
if(L.length==MAXSIZE)
{
printf("\n順序表已滿!\n");
break;
}
scanf("%d",&x);
}
return
L;
}
//直接插入排序//
void
InsertionSort
(SqList
*L
)
{
//
對順序表
L
作直接插入排序。
int
i,j;
SqList
*p=L;
for
(
i=2;
ilength;
++i
)
if
(p->r[i]
<
p->r[i-1])
{
p->r[0]
=
p->r[i];
p->r[i]=p->r[i-1];
for
(
j=i-2;
p->r[0]
<
p->r[j];
--
j
)
p->r[j+1]
=
p->r[j];
//
記錄後移
p->r[j+1]
=
p->r[0];
//
插入到正確位置
}
}
//冒泡排序//
void
BubbleSort(SqList
*L)
{
int
i,j,t;
SqList
*p=L;
for
(i=p->length;i>1;--i){
for
(j=1;j<i;++j)
if
(p->r[j+1]r[j]){
t=p->r[j+1];
p->r[j+1]=p->r[j];
p->r[j]=t;
}
}
}
//簡單選擇排序//
void
SelectSort
(SqList
*L
)
{
SqList
*p=L;
int
i,
j,
k;
KeyType
temp;
for
(i=1;
ilength;
++i)
{
k=i;
for
(j=i+1;
jlength;
j++)
if
(p->r[j]r
[k])
k=j;
if
(k!=i)
{temp=p->r
[i];
p->r
[i]=p->r
[k];
p->r
[k]=temp;
}
}
}
void
display(SqList
*L)
{
SqList
*p;
p=L;
if
(p->length!=0)
{
while(p->length)
{
printf("%d
",p->r[p->length]);
p->length--;
}
}
printf("\n");
}
void
main()
{
SqList
L;
L=InputSList();
InsertionSort
(&L);
//
SelectSort
(&L)
;
//
BubbleSort(&L);
display(&L);
}
㈥ mysql 既按照欄位里的數字排序,又按照欄位里的首字母排序,sql能寫嗎
如果是oracle 的話,創建下面的函數,調用函數做視圖可以實現你要的效果
CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS
V_COMPARE VARCHAR2(100);
V_RETURN VARCHAR2(4000);
FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');
END;
BEGIN
FOR I IN 1..LENGTH(P_NAME) LOOP
V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));
IF V_COMPARE >= F_NLSSORT(' 吖 ') AND V_COMPARE <= F_NLSSORT('驁 ') THEN
V_RETURN := V_RETURN || 'a';
ELSIF V_COMPARE >= F_NLSSORT('八 ') AND V_COMPARE <= F_NLSSORT('簿 ') THEN
V_RETURN := V_RETURN || 'b';
ELSIF V_COMPARE >= F_NLSSORT('嚓 ') AND V_COMPARE <= F_NLSSORT('錯 ') THEN
V_RETURN := V_RETURN || 'c';
ELSIF V_COMPARE >= F_NLSSORT('咑 ') AND V_COMPARE <= F_NLSSORT('鵽 ') THEN
V_RETURN := V_RETURN || 'd';
ELSIF V_COMPARE >= F_NLSSORT('妸 ') AND V_COMPARE <= F_NLSSORT('樲 ') THEN
V_RETURN := V_RETURN || 'e';
ELSIF V_COMPARE >= F_NLSSORT('發 ') AND V_COMPARE <= F_NLSSORT('猤 ') THEN
V_RETURN := V_RETURN || 'f';
ELSIF V_COMPARE >= F_NLSSORT('旮 ') AND V_COMPARE <= F_NLSSORT('腂 ') THEN
V_RETURN := V_RETURN || 'g';
ELSIF V_COMPARE >= F_NLSSORT('妎 ') AND V_COMPARE <= F_NLSSORT('夻 ') THEN
V_RETURN := V_RETURN || 'h';
ELSIF V_COMPARE >= F_NLSSORT('丌 ') AND V_COMPARE <= F_NLSSORT('攈 ') THEN
V_RETURN := V_RETURN || 'j';
ELSIF V_COMPARE >= F_NLSSORT('咔 ') AND V_COMPARE <= F_NLSSORT('穒 ') THEN
V_RETURN := V_RETURN || 'k';
ELSIF V_COMPARE >= F_NLSSORT('垃 ') AND V_COMPARE <= F_NLSSORT('擽 ') THEN
V_RETURN := V_RETURN || 'l';
ELSIF V_COMPARE >= F_NLSSORT('嘸 ') AND V_COMPARE <= F_NLSSORT('椧 ') THEN
V_RETURN := V_RETURN || 'm';
ELSIF V_COMPARE >= F_NLSSORT('拏 ') AND V_COMPARE <= F_NLSSORT('瘧 ') THEN
V_RETURN := V_RETURN || 'n';
ELSIF V_COMPARE >= F_NLSSORT('筽 ') AND V_COMPARE <= F_NLSSORT('漚 ') THEN
V_RETURN := V_RETURN || 'o';
ELSIF V_COMPARE >= F_NLSSORT('妑 ') AND V_COMPARE <= F_NLSSORT('曝 ') THEN
V_RETURN := V_RETURN || 'p';
ELSIF V_COMPARE >= F_NLSSORT('七 ') AND V_COMPARE <= F_NLSSORT('裠 ') THEN
V_RETURN := V_RETURN || 'q';
ELSIF V_COMPARE >= F_NLSSORT('亽 ') AND V_COMPARE <= F_NLSSORT('鶸 ') THEN
V_RETURN := V_RETURN || 'r';
ELSIF V_COMPARE >= F_NLSSORT('仨 ') AND V_COMPARE <= F_NLSSORT('蜶 ') THEN
V_RETURN := V_RETURN || 's';
ELSIF V_COMPARE >= F_NLSSORT('侤 ') AND V_COMPARE <= F_NLSSORT('籜 ') THEN
V_RETURN := V_RETURN || 't';
ELSIF V_COMPARE >= F_NLSSORT('屲 ') AND V_COMPARE <= F_NLSSORT('鶩 ') THEN
V_RETURN := V_RETURN || 'w';
ELSIF V_COMPARE >= F_NLSSORT('夕 ') AND V_COMPARE <= F_NLSSORT('鑂 ') THEN
V_RETURN := V_RETURN || 'x';
ELSIF V_COMPARE >= F_NLSSORT('丫 ') AND V_COMPARE <= F_NLSSORT('韻 ') THEN
V_RETURN := V_RETURN || 'y';
ELSIF V_COMPARE >= F_NLSSORT('帀 ') AND V_COMPARE <= F_NLSSORT('咗 ') THEN
V_RETURN := V_RETURN || 'z';
END IF;
END LOOP;
RETURN V_RETURN;
END;
㈦ 簡述oracle管理工具sql*plus和isql*plus的區別
SQL*plus是與oracle進行交互的客戶端工具。在sql*plus中,可以運行sql*plus命令與sql*plus語句
pl/sql是工具軟體,很多sql語句不能在pl/sql執行,如:shutdown,set serveroutput on都不能執行
㈧ sqlserver中有沒有辦法對漢字的欄位排序
--漢字首字母查詢處理用戶定義函數
CREATE FUNCTION f_GetPY(@str nvarchar(4000))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @py TABLE(
ch char(1),
hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)
INSERT @py SELECT 'A',N'吖',N'鏊'
UNION ALL SELECT 'B',N'八',N'簿'
UNION ALL SELECT 'C',N'嚓',N'錯'
UNION ALL SELECT 'D',N'噠',N'跺'
UNION ALL SELECT 'E',N'屙',N'貳'
UNION ALL SELECT 'F',N'發',N'馥'
UNION ALL SELECT 'G',N'旮',N'過'
UNION ALL SELECT 'H',N'鉿',N'蠖'
UNION ALL SELECT 'J',N'丌',N'竣'
UNION ALL SELECT 'K',N'咔',N'廓'
UNION ALL SELECT 'L',N'垃',N'雒'
UNION ALL SELECT 'M',N'媽',N'穆'
UNION ALL SELECT 'N',N'拿',N'糯'
UNION ALL SELECT 'O',N'噢',N'漚'
UNION ALL SELECT 'P',N'趴',N'曝'
UNION ALL SELECT 'Q',N'七',N'群'
UNION ALL SELECT 'R',N'蚺',N'箬'
UNION ALL SELECT 'S',N'仨',N'鎖'
UNION ALL SELECT 'T',N'他',N'籜'
UNION ALL SELECT 'W',N'哇',N'鋈'
UNION ALL SELECT 'X',N'夕',N'蕈'
UNION ALL SELECT 'Y',N'丫',N'蘊'
UNION ALL SELECT 'Z',N'匝',N'做'
DECLARE @i int
SET @i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
WHILE @i>0
SELECT @str=REPLACE(@str,SUBSTRING(@str,@i,1),ch)
,@i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
FROM @py
WHERE SUBSTRING(@str,@i,1) BETWEEN hz1 AND hz2
RETURN(@str)
END
GO
㈨ sqli,less DB頁面問題
有什麼問題啊
㈩ vb從sql得到五個數來進行排序
<%
Dim sql:sql="SELECT 班次名稱,sum(燃料卸煤量) as xml FROM XZB_JZJX3 WHERE YEAR(日期)='"&years&"' AND MONTH(日期)='"&months&"' group by 班次名稱 order by sum(燃料卸煤量) desc"
set pa=conn.execute(sql)
i=0
jf=4.5
dim mc()
do while not pa.eof
Redim Preserve mc(1,i)
mc(0,i)=pa("sl")
if ls<>pa("sl") then
ls=pa("sl")
if jf<>0 then jf=jf-1.5
end if
mc(1,i)=jf
i=i+1
pa.movenext
loop
pa.close
set pa=nothing
for i=0 to ubound(mc,2)
response.write mc(0,i)&" "
response.write mc(1,i)&" "
next
%>