㈠ 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
%>