當前位置:首頁 » 編程語言 » dbquerysql

dbquerysql

發布時間: 2022-12-15 07:15:42

sql 分頁語句的問題

下面的類,是資料庫分頁封裝好的類
import java.sql.*;
import com.sun.rowset.CachedRowSetImpl;

public class RecordSet
{
//總頁數
public int getCount(CachedRowSetImpl rs)
{
try{
CachedRowSetImpl rs1=rs;
if(rs1.last()&&!rs1.isAfterLast())
{
int _intRecordCount=0;
_intRecordCount=rs.getRow();
rs1.beforeFirst();
return _intRecordCount;
}else{
return -1;
}
}catch(Exception e){
return -1;
}
}
//當前頁
public int getPages(CachedRowSetImpl rs,int _intPageSize)
{
int _intRecordCount=0;
int _intPages=0;
_intRecordCount=this.getCount(rs);
if(_intRecordCount==-1)
{
return -1;
}else{
int iMod=_intRecordCount%_intPageSize;
if(iMod==0)
_intPages=_intRecordCount/_intPageSize;
else
_intPages=_intRecordCount/_intPageSize+1;
return _intPages;
}
}
//資料庫從第幾條開始取數據
public int getPageRecordIndex(int _intPageNum,int _intPageSize)
{
return (_intPageNum-1)*_intPageSize;
}
}

類中使用方法(代碼節選)
CachedRowSetImpl crs=new CachedRowSetImpl();
crs=db.dbquery("select * from Abc where lx='"+lx+"' and id>0 order by id DESC","2009");

String strrequestpagenum=(request.getParameter("pagenum")+"").trim();
int intpagenum=1;
if(strrequestpagenum.equals("null"))
{
strrequestpagenum="1";
}
intpagenum=Integer.parseInt(strrequestpagenum);
RecordSet recordset=new RecordSet();
int introwindex=recordset.getPageRecordIndex(intpagenum,intperpagerows);
strPages=String.valueOf(recordset.getPages(crs,intperpagerows));
strPagenum=strrequestpagenum;
if(introwindex!=0)
{
crs.absolute(introwindex);
}
int inttemp=0;
while (crs.next()&&inttemp<intperpagerows)
{
……
}

有什麼不明白的,你可以網路Hi我,good luck!~

⑵ 如何得到EF查詢生成的SQL

在EF 4.1中,我們可以直接調用DbQuery<>的ToString()方法得到所生成的SQL。

using (var context = new MyDbContext())
{
    var people = from p in context.People
                 where p.PersonID > 100
                 select p;

    string sql = people.ToString();
}

所生成的SQL是:
SELECT 
[Extent1].[PersonID] AS [PersonID], 
[Extent1].[Name] AS [Name]
FROM [dbo].[People] AS [Extent1]
WHERE [Extent1].[PersonID] > 100
大 家應該已經猜到,這里的ToString()方法其實也就是調用了ObjectQuery<>的ToTraceString()方法。 DbQuery<>.ToString() ==> System.Data.Entity.Internal.Linq.InternalQuery<>.ToString()方法,此方法 在.NET Reflector得到的實現是這樣的:
public override string ToString()
{
    return this._objectQuery.ToTraceString();
}

⑶ java操作mysql,語句查詢為什麼不能這樣寫,編譯器報錯。

String sql1="select * from zhanghu where user='"+u+"'+and pass='"+p+"'";

把加號去了,新手啊

⑷ Java 操作資料庫時候出現錯誤,找了很久沒有解決問題。我是新手請大神指教,謝謝了

這是典型的空指針異常,就是編碼中對應的變數為空,然後調用對應的方法或屬性導致的,看了一下,有2個問題:

  1. String []sid={id}; 這行代碼的意思是傳入了一個NULL值的sid變數

  2. books.dbquery(booksql,sid );調用查詢方法,查詢方法中有【for(int i=0;i<paras.length;i++){】循環初始化參數處理,但此時參數是空,沒有判斷空的地方,所以這句話直接拋出空指針異常了。

  3. 修改,A:將傳入參數進行賦值,如 11等數據 B:在查詢方法中增加判斷空的處理,這樣的程序才是完整的。

⑸ 查詢sql資料庫中用4個成語連接起來首尾相連的成語

不知需要用什麼語言實現, 以Pascal為例, 演算法如下:
輸入參數sIn (初始成語, 如"成年累月")
輸出參數sOut := '';
sTmp := right(sIn, 1) //取最右1個字
DBQuery.Open; //打開表
while Not DBQuery.eof do begin
DBQuery.SQL := 'select word from 成語表
where left(word, 1) = sTmp'; //查找所有最左字=上一詞的最右字的記錄
DBQuery.Open;
if Not DBQuery.eof then begin
sTmp := DBQuery.field(0);
sOut := sOut + '-' + sTmp;
sTmp := right(sTmp, 1) //再取最右1個字
end; //if
end; //while

return(sOut);

⑹ 如何得到EF查詢生成的SQL

在EF 4.1中,我們可以直接調用DbQuery<>的ToString()方法得到所生成的SQL。

using (var context = new MyDbContext())
{
var people = from p in context.People
where p.PersonID > 100
select p;

string sql = people.ToString();
}

⑺ 這個資料庫錯誤是怎麼一回事我需要解決

是你在對資料庫進行查詢的時間出現的情況吧。
提示是說query錯誤,在查詢SQL語句的第2行,位置在於語句 '101026) LIMIT 0,20' 的附近。

你看看語句的語法有沒有少寫什麼? 先把LIMIT 0,20 去掉,一步步的查錯,很快就能找到問題了。

⑻ 如何更新Excel的資料庫查詢函數庫

更新一下之前寫的Excel的資料庫類,將其改成函數的形式,調用更簡單(省卻了生成類實例的步驟)。現在這個代碼在工作中用了一年多,已經比較健壯。若有問題,請留言指出或與我聯系。

這些代碼有如下優勢:
•無需任何配置。在VBA中新建模塊,並把代碼復制轉帖過去即可使用。
•有以下函數:執行資料庫語句、查詢資料庫、結果復制到單元格(Excel中最常用)、將Excel表格上傳到資料庫。基本覆蓋Excel中對資料庫的常用操作。
•會在立即窗口顯示資料庫錯誤信息,方便查錯。
•在資料庫連接字元串字典中配好資料庫連接信息後,資料庫訪問時可直接使用配好的鏈接字元串。

具體的函數用法已經寫在下面代碼注釋里。簡單描述一下:
•dqQueryToArray(sql, connection_string) 查詢資料庫,返回一個二維數組
•dbQueryOne(sql, connection_string) 查詢資料庫,返回單個變數。
•dbQueryToCell(sql, range, connection_string, withHeader) 查詢資料庫後,將結果顯示在range開始的區域中;withHeader控制是否顯示列名。
•dbExec(sql, necction_string) 執行資料庫語句;無返回值
•dbInsertRange(table, range, connection_string, is_empty) 將本Excel文件的range區域里的數據插入到資料庫的表table。其中is_empty控制在上傳數據前是否清空table的原數據。

其它就看一下代碼吧:
' EXCEL的ADO資料庫操作函數庫
' 這些代碼應該放在Excel的VBA模塊中,類模塊的名字為database,並以以下形式引用:
'
' res = dbQueryToArry(sql, connection_string)
' ' 返回sql的查詢結果,結果為一個二維數組
' res = dbQueryOne(sql, connection_string)
' ' 返回sql的查詢結果,但只返回第一個數據(相當於資料庫查詢結果的左上角那個數據)
' dbQueryToCell sql, save_to_range, connection_string, withHeader
' ' 將sql的查詢結果直接寫入到以save_to_range開頭的單元格區域中
' ' withHeader控制是否復製表頭,默認為true(復製表頭)
'
' 其中參數sql為資料庫查詢語句,connection_string為資料庫連接字元串。
'
' 比如要連接SQL資料庫,並已經設置ODBC,連接字元串為:
' "Provider=MSDASQL;DSN=odbc_name;UID=username;PWD=password;database=database_name;"
' 如果未設置ODBC,連接字元串為:
' "driver={SQL Server};server=service_name_or_ip;uid=username;pwd=password;database=database_name;"
' 其中最後面的database變數可省略。對於SQL Server,推薦使用後一種方法。
'
' 如果數據來源為Excel文件,connection_string參數可省略
'
' 其它功能:內置資料庫的連接字元串、查詢存儲過程
'
' Author: [email protected], 2014-03-01 v4
' url: http://qiang.org/blog/it/excel-vba-database-functions.html
Private sqlDict As Object ' 緩存數據
Private cnn As Object, rst As Object, lastConn As String
Private Sub dbInitialize()
If Not sqlDict Is Nothing Then Exit Sub
Set sqlDict = CreateObject("scripting.Dictionary")
lastConn = ""
' 在這里可以緩存一些常用的資料庫信息,這樣在查詢資料庫時可以直接調用
' 比如dbQueryToArry(sql, "this")
With sqlDict
.Add "SQL伺服器", _
"Provider=MSDASQL;DSN=odbc_name;UID=username;PWD=password;database=database_name;"
.Add "SQL伺服器(無需配置ODBC)", _
"driver={SQL Server};server=ip;uid=username;pwd=password;database=database_name;"
.Add "this", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=Excel " & Application.Version & ";"
End With
End Sub
' 查詢資料庫,返回RecordSet對象
' sql: 資料庫查詢語句
' sqlConnectString: 資料庫連接信息,或者直接指定資料庫,比如"Wind"、"JYDB"等,
' 利用內設的資料庫連接信息
Public Function dbQuery(sql As String, _
Optional ByVal sqlConnectString As String = "this") As Object ' ADODB.Recordset
dbConnectSQL sqlConnectString
On Error GoTo errorhander
rst.Open sql, cnn
Set dbQuery = rst
errorhander:
dbDisplayError sql
End Function
' 查詢資料庫,返回一個數組
' sql: 資料庫查詢語句
' sqlConnectString: 資料庫連接信息,或者直接指定資料庫,比如"Wind"、"JYDB"等,
' 利用內設的資料庫連接信息
Public Function dbQueryToArray(sql As String, _
Optional ByVal sqlConnectString As String = "this")
dbConnectSQL sqlConnectString
On Error GoTo errorhander
rst.Open sql, cnn
dbQueryToArray = rst.GetRows(10000000)
errorhander:
DisplayError sql
End Function
' 查詢資料庫,返回單個數值
' sql: 資料庫查詢語句
' sqlConnectString: 資料庫連接信息,或者直接指定資料庫,比如"Wind"、"JYDB"等,
' 利用內設的資料庫連接信息
Public Function dbQueryOne(sql As String, _
Optional ByVal sqlConnectString As String = "this")
dbConnectSQL sqlConnectString
On Error GoTo errorhander
rst.Open sql, cnn
dbQueryOne = rst.Fields.Item(0).value
errorhander:
dbDisplayError sql
End Function
' 查詢資料庫,返回單個數值
' sql: 資料庫查詢語句
' sqlConnectString: 資料庫連接信息,或者直接指定資料庫,比如"Wind"、"JYDB"等,
' 利用內設的資料庫連接信息
Public Function dbQueryToCell(sql$, Optional rng As Excel.Range, _
Optional ByVal sqlConnectString$ = "this", _
Optional withHeader As Boolean = True)
On Error GoTo error_handler
dbConnectSQL sqlConnectString
rst.Open sql, cnn
Set rng = rng.Cells(1, 1)
If withHeader = True Then
Dim i As Long
For i = 0 To rst.Fields.Count - 1
rng.Offset(0, i).value = rst.Fields(i).Name
Next
rng.Offset(1, 0).CopyFromRecordset rst
Else
rng.CopyFromRecordset rst
End If
error_handler:
dbDisplayError sql
End Function
' 執行任意資料庫語句,無返回結果。如需返回結果,請使用Query、QueryOne、QueryToCell等函數
' sql: 資料庫查詢語句
' sqlConnectString: 資料庫連接信息,或者直接指定資料庫,比如"Wind"、"JYDB"等,利用內設的資料庫連接信息
Sub dbExec(ByVal sql As String, _
Optional ByVal sqlConnectString As String = "this")
dbConnectSQL sqlConnectString
On Error GoTo errorhander
cnn.Execute sql
errorhander:
dbDisplayError sql
End Sub
' 這個函數用來上傳一個Excel區域到資料庫,數據表必須事先建好,並且包括Excel區域的第一行
' Database.InsertRange(table, rng, sqlConnectString, isEmpty)
' table:Excel數據將上傳到這個表內
' rng: 將被上傳的Excel區域
' sqlConnectString: 資料庫連接字元串
' isEmpty: 是否清空原有表格數據
Public Function dbInsertRange(table$, rng As Excel.Range, Optional ByVal sqlConnectString$ = "this", _
Optional isEmpty As Boolean = False)
dbConnectSQL sqlConnectString
On Error Resume Next
If isEmpty Then dbExec "delete from " & table, sqlConnectString$
Dim r As Long, sqlHead$, i As Long
' 首選根據isEmpty選項,刪除原表內所有數據
For i = 1 To rng.Columns.Count
sqlHead = sqlHead & ",[" & rng.Cells(1, i) & "]"
Next i
' 其次,依次拆入每行
' 目前每一行都需運行一個SQL語句,效率較低,如果數據量較大,可能會引起Excel死機
sqlHead = "insert into " & table & " (" & mid(sqlHead, 2, 10000000) & ") values "
For r = 2 To rng.rows.Count
Dim sql$
sql = ""
For i = 1 To rng.Columns.Count
Dim v
v = rng.Cells(r, i).value()
If IsError(v) Then v = ""
If IsDate(v) Then
sql = sql & ",'" & Format(v, "yyyy-mm-dd") & "'"
ElseIf v <> "" And IsNumeric(v) Then
sql = sql & "," & v
Else
sql = sql & ",'" & v & "'"
End If
Next i
dbExec sqlHead & " (" & mid(sql, 2, 1000000) & ")", sqlConnectString$
Next r
End Function
' 查詢存儲過程,返回的是ADODB.RecordSet對象
Public Function dbQueryStoredProc(procName$, para, _
Optional ByVal sqlConnectString As String = "this", _
Optional returnPara As Boolean = True) As Object 'ADODB.Recordset
On Error GoTo errorhander
dbConnectSQL sqlConnectString
With com
.ActiveConnection = cnn
.CommandType = adCmdStoredProc
.CommandText = procName
' 獲取存儲過程的參數定義
.Parameters.Refresh
' 如果存在輸出參數,則刪除它,默認第一個為輸出參數
On Error Resume Next
If returnPara Then .Parameters.Delete 0
' 設置輸入參數的值
If IsArray(para) Then
Dim i
For i = 0 To UBound(para)
.Parameters.Item(i).value = para(i)
Next i
End If
' 改變輸入參數大小
Dim tmpp
For Each tmpp In .Parameters
tmpp.Size = 255
Next tmpp
' 獲取參數返回值
Set dbQueryStoredProc = .Execute()
End With
errorhander:
DisplayError sql
End Function
Private Sub dbClose()
' 當類被注銷時,斷開資料庫連接
On Error Resume Next
If cnn.State <> 0 Then cnn.Close
End Sub
' 連接資料庫
' 此處首先檢查cnn是否已經連接到想要連接的資料庫,如果已經連接,將不產生任何操作
' 本Database對象在對象存續過程中,不會主動斷開;
' 只有在對象注銷之時,才斷開資料庫,如需斷開資料庫連接,請set db = nothing
Private Function dbConnectSQL(ByVal sqlConnectString$) As String
On Error Resume Next
Call dbInitialize
If sqlDict.Exists(LCase(sqlConnectString)) Then
sqlConnectString = sqlDict.Item(LCase(sqlConnectString))
End If
If rst Is Nothing Then Set rst = CreateObject("ADODB.Recordset")
If cnn Is Nothing Then Set cnn = CreateObject("ADODB.Connection")
If cnn.State <> 1 Or lastCnn <> sqlConnectString Then
cnn.Close
Set cnn = Nothing
Set cnn = CreateObject("ADODB.Connection")
cnn.Open sqlConnectString
lastConn = sqlConnectString
End If
dbConnectSQL = sqlConnectString
End Function
' 顯示查詢資料庫過程中出現的錯誤信息,信息被顯示在立即窗口。
Private Sub dbDisplayError(sql$)
Dim e
If cnn.Errors.Count > 0 Then
Debug.Print cnn.Errors.Count & " errors found when exec """ & sql & """"
For Each e In cnn.Errors
Debug.Print "Error info: " & e.description & " Source: " & e.Source
Next e
End If
End Sub

php mysql 定時每天凌晨3點執行刪除數據任務

mysql定時任務

自 MySQL5.1.6起,增加了一個非常有特色的功能–事件調度器(Event Scheler),可以用做定時執行某些特定任務(例如:刪除記錄、對數據進行匯總等等),來取代原先只能由操作系統的計劃任務來執行的工作。更值得 一提的是MySQL的事件調度器可以精確到每秒鍾執行一個任務,而操作系統的計劃任務(如:linux下的CRON或Windows下的任務計劃)只能精 確到每分鍾執行一次。對於一些對數據實時性要求比較高的應用(例如:股票、賠率、比分等)就非常適合。

如:每隔30秒將執行存儲過程test,將當前時間更新到examinfo表中id=14的記錄的endtime欄位中去.
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;

create event if not exists e_test
on schele every 30 second
on completion preserve
do call test();

2. windows、linux 的定時任務 這個就不舉例了,通過腳本定時去調用mysql執行

⑽ 在asp中Set a=DBQuery(sql);Set b=DBQuery(sql)可以用Set a = DBQuery(sql) ;Set b =a代替

出現了什麼錯誤?請說明一下!您到底要要做什麼?加我的QQ:289877972,我給你解答!

熱點內容
安卓手機鎖了怎麼開 發布:2025-01-23 17:21:18 瀏覽:136
經濟學演算法 發布:2025-01-23 17:13:46 瀏覽:420
如何和軟體聯系伺服器 發布:2025-01-23 17:13:00 瀏覽:799
javacrc16演算法 發布:2025-01-23 17:11:31 瀏覽:224
編程加圖片 發布:2025-01-23 17:10:33 瀏覽:566
中國風網站源碼 發布:2025-01-23 17:05:56 瀏覽:679
pythonfilter用法 發布:2025-01-23 17:04:26 瀏覽:568
java轉number 發布:2025-01-23 16:58:11 瀏覽:476
解壓的英語作文 發布:2025-01-23 16:45:05 瀏覽:969
湖南首選dns伺服器地址 發布:2025-01-23 16:06:39 瀏覽:874