如题,我在电脑上配置了tns文件,用plsql能连接上oracle,delphi7的控制台程序,如何连接oracle,最好有代码,另外怎么样屏蔽按回车键推出控制台?谢谢!!!
解决方案 »
- 【CSDN开心辞典】第一个答对者得90分,其余均分
- 当我想选择dbgrideh的矩形区域时,为什么是cell的焦点跟着移动,就像在滑动滚动条
- 我就这么多分了,希望各位高手帮帮忙,帮小弟解决这个问题,见人有分!!!(关于timer组件监视数据库的问题)
- 高分!!这两句代码怎么都无效???????????急!在线·
- 在程序中延时2秒怎么写啊?
- 怎样实现当鼠标移至菜单项时,在状态栏显示当前菜单项的Hint
- 如何自动合并字段
- 什么时候改版的,偶没几天没来吧?
- 下课!下课!有愿意帮我所句话吗
- 关于一个应用系统的登录问题
- File not found 'scExcelExport.dcu'
- realplayer播放器在看电影时如何实现双击全屏。。。急!
SysUtils,Windows,DB, ADODB,ActiveX;
type
TKeyShiftState = (kssRightAlt, kssLeftAlt, kssRightCtrl, kssLeftCtrl, kssShift, kssNumLock, kssScrollLock, kssCapsLock, kssEnhancedKey);type
TKeyShiftSet = set of TKeyShiftState;type
PKeyEventRecordFix = ^TKeyEventRecordFix;
TKeyEventRecordFix = packed record
bKeyDown: BOOL;
wRepeatCount: Word;
wVirtualKeyCode: Word;
wVirtualScanCode: Word;
KeyShiftState: TKeyShiftSet;
case Integer of
0:(
UnicodeChar: WCHAR;
dwControlKeyState: DWORD
);
1:(
AsciiChar: CHAR
)
end;var
VirtualKeyCode: Word;
VirtualScanCode: Word;
adoConn: TADOConnection;
adoDs: TADODataSet;
function CheckKey(const VKCode: Word): Boolean;
begin
result:= (VKCode<>VK_RETURN);
end; function ReadKey: Char;
var
NumRead: Cardinal;
HConsoleInput: THandle;
InputRec: TInputRecord;
begin
HConsoleInput:= GetStdHandle(STD_INPUT_HANDLE);
repeat
if WaitForSingleObject(HConsoleInput,INFINITE) <> WAIT_OBJECT_0 then
raise Exception.Create('Invalid handle for console input');
if ReadConsoleInput(HConsoleInput,InputRec,1,NumRead) and (InputRec.EventType = KEY_EVENT) then
begin
with PKeyEventRecordFix(@InputRec.Event.KeyEvent)^ do
if bKeyDown and CheckKey(wVirtualKeyCode) then
begin
VirtualScanCode:= wVirtualScanCode;
VirtualKeyCode := wVirtualKeyCode;
KeyShiftState := TKeyShiftSet(LongRec(dwControlKeyState).Lo);
Result:= AsciiChar;
Exit;
end;
end;
until False;
end;begin
CoInitialize(nil);
adoConn:= TADOConnection.Create(nil);
adoDs:= TADODataSet.Create(nil);
adoConn.ConnectionString:='Provider=MSDAORA.1;Password=system;User ID=manager;Data Source=orcl;Persist Security Info=True';
adoConn.LoginPrompt:= false;
adoConn.Connected:= true;
adoDs.Connection:= adoConn;
adoDs.Close;
adoDs.CommandText:='select * from tablename';
adoDs.Open;
while not adoDs.Eof do
begin
Writeln('...');
adoDs.Next;
end;
Writeln('Press any key to Exit...');
ReadKey;
adoConn.Free;
adoDs.Free;
end.
每次执行时清除控制台上次的执行信息(),
比如执行第一次显示:
第一次执行成功
当第二次执行时清除控制台信息显示:
第二次执行成功
而不是:
第一次执行成功
第二次执行成功
谢谢!!