PMS32 Online- Hilfereferenz

MY.CLIENTS.SQL

SQL - Handelt SQL's für die Bearbeitung von Daten


Hilfe: SQL Manager
Handelt SQL's für die Bearbeitung von Daten


Code: SQL Manager
*/ Kurzbeispiel für den Zugriff auf diese Struktur
*/ Der Zugriff erfolgt über: My.Clients.SQL
*/ Wird dieses Objekt in einem REPLACE oder einer Schleife SCAN ... ENDSCAN | FOR ... NEXT benötigt
*/ so sollte vor der Schleife die Objektstruktur in eine Variable geholt werden!
*/ Die Ausführungsgeschwindigkeit wird dadurch sehr vergrößert!
*/ Beispiel:
*/ Definieren einer LOKALEN Variablen
LOCAL loSQL AS My.Clients.SQL
*/ Setzen der Variablen
loSQL = My.Clients.SQL
*/ Jetzt erst die Schleifen durchlaufen... man beachte ALL, dass können ne Menge Sätze sein...
REPLACE ALL Feldname1 WITH loSQL.Function1(),Feldname2 WITH loSQL.Function1(), ...
*/ Oder in einer Schleife...
SCAN
	lvValue = loSQL.Function(Alias.Spalte) + 25
	lvValue = loSQL.Function2(m.lvValue)
	REPLACE Feldname WITH m.lvValue,...
ENDSCAN
*/ Es sind auch geschachtelte Aufrufe möglich...

Memberliste von SQL

_Server1 : SQL - Handler für VFP VFPSQL Server


Liste der Methoden von SQL


RSSqlRead() - Recordset SQL Read

Rückgabe:[ADODB.Recordset], Lesen eines RecordSets (ADODB) von einem Backend.
Hilfeinformation
Lesen eines RecordSets (ADODB) von einem Backend.

Aufrufinformation
ADODB.Recordset = My.Clients.SQL.RSSqlRead(tcSqlStatement AS STRING,tcProvider AS STRING,toPath AS My_Cl_Path)
ADODB.Recordset = My.Clients.SQL.RSSqlRead(tcSqlStatement,tcProvider,toPath)
Codeinformation
*/ My wird vorausgesetzt!
LOCAL loRS AS ADODB.Recordset , lcProvider AS STRING
lcProvider = [Provider=VFPOLEDB.1;Data Source=%CDBFDIR%;Password="";Collating Sequence=MACHINE]
loRS = My.Clients.SQL.RSSqlRead([SELECT TOP 10 * FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ODER BY artnr],m.lcProvider)
IF !ISNULL(m.loRS)
	*/ Jetzt die einzelnen Records abklappern...
	DO WHILE NOT loRS.EOF
		? loRS.Fields("artnr").Value
		loRS.MoveNext()
	ENDDO
ENDIF

SqlClose() - Datensitzung schliessen

Schliessen der Datenumgebung
Hilfeinformation
Rückgabe:[Boolean], Schliesst die angegebene Datensitziung.

Aufrufinformation
Variant = My.Clients.SQL.SqlClose(tnDataSession AS INTEGER)
Variant = My.Clients.SQL.SqlClose(tnDataSession)
Codeinformation
*/ My vorausgesetzt.
*/ Schliesst die angegebene Datensitzung
My.Clients.SQL.SQLClose.(SET("DataSession"))

SqlCount() - Anzahl (_TALLY) eines SQL's

Rückgabe:[Integer], Rückgabe ist die Anzahl der Datensätze des SQL's
Hilfeinformation
Rückgabe ist die Anzahl der Datensätze des SQL's.
Die einzelnen Datenbanken werden wie folgt angegeben:
CDBFDIR!      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Integer = My.Clients.SQL.SqlCount(tnDataSession AS INTEGER,tcSQLStatement AS STRING)
Integer = My.Clients.SQL.SqlCount(tnDataSession,tcSQLStatement)
Codeinformation
*/ Ermittelt die Anzhal der Datensätze
LOCAL lnCount AS Integer
lnCount = My.Clients.SQL.SqlCount(SET("DataSession"),[SELECT artnr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3RT%'])
? lnCount

SqlExec() - Kommando ausführen

Ausführen eines SQL-Befehls. Rückgabe: [Variant]
Hilfeinformation
Ausführen eines SQL-Befehls. Rückgabe: [Variant]
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlExec(tnDataSession AS INTEGER,tcSQLStatement AS STRING,tpReturnValue AS Variant @)
Variant = My.Clients.SQL.SqlExec(tnDataSession,tcSQLStatement,@tpReturnValue)
Codeinformation
*/ My wird vorausgesetzt!
=My.Clients.SQL.SQLExec(SET("DataSession"),[UPDATE CDBFDIR!B01 SET wbz1 = wbz1 + 1 WHERE artnr LIKE 'SIE.3TH%'])

SqlExist() - Wie SqlCount

Prüft, ob der SQL Ergebnisse zurückliefert.
Hilfeinformation
Prüft, ob der SQL Ergebnisse zurückliefert. Rückgabe = Boolean
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlExist(tnDataSession AS INTEGER,tcSQLStatement AS STRING)
Variant = My.Clients.SQL.SqlExist(tnDataSession,tcSQLStatement)
Codeinformation
*/ Ermittelt die Anzhal der Datensätze
LOCAL llExist AS Boolean
llCount = My.Clients.SQL.SqlExist(SET("DataSession"),[SELECT artnr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3RT%'])
? llExist

SqlRead() - SQL to Cursor

Lesen eines SQL's in einen Cursor bzw. Tabelle incl. Erweiterungen: __Changed,__New,__Del
Hilfeinformation
Lesen eines SQL's in einen Cursor bzw. Tabelle incl. Erweiterungen: __Changed,__New,__Del
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlRead(tnDataSession AS INTEGER,tcSQLStatement AS STRING,tcAlias AS STRING,tvTable AS Variant)
Variant = My.Clients.SQL.SqlRead(tnDataSession,tcSQLStatement,tcAlias,tvTable)
Codeinformation
*/ My vorausgesetzt!
IF My.Clients.SQL.SQLRead(SET("DataSession"),;
	[SELECT * FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr],;
	"qB01",0)
	*/ Dann besteht der Cursor qB01
	*/ Die einzelnen Parameter:
	*/	nDataSession	=> Datensitzung
	*/	cSqlStatement	=> Das SQL Statement
	*/	cAlias			=> ALIAS des Cursors
	*/ kann...
	*/	vTable kann vom Typ [L] oder [N] sein!
	*/	vTable = .F.	=> Abbildung in einem Cursor incl. den Columns __Changed [L] und __New [L]
	*/	vTable = .>T.	=> Abbildung in einer Tabelle incl. den Columns __Changed [L] und __New [L]
	*/	tvTable [N]	- Bitpattern!
	*/		Bit-0 [1]	=> 0 - In einem Cursor, 1 - In einer Tabelle
	*/		Bit-1 [2]	=> 0 - Incl. Updatefelder, Columns __Changed [L] und __New [L], 1 - Ohne Updatefelder
ENDIF

SqlReadArray() - SQL to Array

Einen SQL in ein Array übertragen
Hilfeinformation
Einen SQL in ein Array übertragen
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlReadArray(tvDataSession AS Variant,tcSQLStatement AS String,toObject AS Object,taArray)
Variant = My.Clients.SQL.SqlReadArray(tvDataSession,tcSQLStatement,toObject,taArray)
Codeinformation
*/ SQL in ein Array übertragen
LOCAL laArray[1], loObject AS Object

*/ 1. In ein Lokales Array
IF My.Clients.SQL.SQLReadArray(SET("DataSession"),[SELECT artnr,idb01,ekbr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr],.NULL.,@laArray)
	*/ Dann wurden Daten ermittelt und das Array erstellt
	*/ laArray[n,1]	=> 'artnr'
	*/ laArray[n,2]	=> 'idb01'
	*/ laArray[n,3]	=> 'ekbr'
ENDIF

*/ 2. In ein Objekt-Array
loObject = CREATEOBJECT("EMPTY")			&& Ein Objekt erstellen
=ADDPROPERTY(m.loObject,"aArray[1,1]")		&& Ein Array adden (Property)
IF My.Clients.SQL.SQLReadArray(SET("DataSession"),[SELECT artnr,idb01,ekbr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr],m.loObject,"aArray")
	*/ Dann wurden Daten ermittelt und das Array erstellt
	*/ loObject.aArray[n,1]	=> 'artnr'
	*/ loObject.aArray[n,2]	=> 'idb01'
	*/ loObject.aArray[n,3]	=> 'ekbr'
ENDIF

*/ Es gibt noch weitere Aufrufe Aufrufe, die lediglich die DataSession betreffen:
*/		My.Clients.SQL.SQLReadArray(SET("DataSession"),...		Mit Angabe der Datensitzung
*/		My.Clients.SQL.SQLReadArray('',...						Die Abfrage wird in einer getrennten Datensitzung durchgeführt
*/		My.Clients.SQL.SQLReadArray(.NULL.,...					Die Abfrage wird in einer getrennten Datensitzung mittels ADODB.Recordset durchgeführt

SqlReadCollection() - SQL to Collection

Wie Array, jedoch wird eine Collection zurückgegeben
Hilfeinformation
Wie Array, jedoch wird eine Collection zurückgegeben
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlReadCollection(tvDataSession AS Variant,tcSQLStatement AS STRING,tcIndex AS String)
Variant = My.Clients.SQL.SqlReadCollection(tvDataSession,tcSQLStatement,tcIndex)
Codeinformation
*/ SQL in ein Array übertragen
LOCAL loColl AS Collection , loItem AS Object

*/ Hier wird der KEY der Collection per Satznummer ermittelt: 1,2,3,4,5,... Typ=[C]
loColl = My.Clients.SQL.SQLReadCollection(SET("DataSession"),[SELECT artnr,idb01,ekbr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr])
IF m.loColl.Count>0
	*/ Dann wurden Daten ermittelt und die Collection eingetragen
	FOR EACH loItem IN m.loColl
		? loItem.artnr,loItem.idb01,loItem.ekbr
	ENDFOR
ENDIF

*/ Hier wird der KEY der Collection angegeben. Es MUSS SICH ZWINGEND UM EINEN EINDEUTIGEN SCHLÜSSEL HANDELN!
*/ Das Objekt loRec wird während des Füllens der Collection erzeugt!
*/ Das ITEM einer Collection ist immer ein Datensatz-Objekt! Beispiel: SCATTER MEMO NAME loRec
loColl = My.Clients.SQL.SQLReadCollection(SET("DataSession"),[SELECT artnr,idb01,ekbr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr],"m.loRec.IDB01")
IF m.loColl.Count>0
	*/ Dann wurden Daten ermittelt und die Collection eingetragen
	FOR EACH loItem IN m.loColl
		? loItem.artnr,loItem.idb01,loItem.ekbr
	ENDFOR
ENDIF

*/ Es gibt noch weitere Aufrufe Aufrufe, die lediglich die DataSession betreffen:
*/		My.Clients.SQL.SQLReadCollection(SET("DataSession"),...		Mit Angabe der Datensitzung
*/		My.Clients.SQL.SQLReadCollection('',...						Die Abfrage wird in einer getrennten Datensitzung durchgeführt
*/		My.Clients.SQL.SQLReadCollection(.NULL.,...					Die Abfrage wird in einer getrennten Datensitzung mittels ADODB.Recordset durchgeführt

SqlReadObject() - Lesen eines Tabellen-Objekts

Gibt den SQL Select einer Tabelle als Objekt zurück
Hilfeinformation
Das gelesene Objekt enthält die Property __LastGet = SECONDS()
Wird direkt für die Abfrage von ...Misc.o... benötigt.
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlReadObject(tvDataSession AS Variant,tcSQLStatement AS STRING , tlNoFlds AS Boolean)
Variant = My.Clients.SQL.SqlReadObject(tvDataSession,tcSQLStatement,tlNoFlds)
Codeinformation
*/ My ist bekannt...
LOCAL loB01 AS Object
loB01 = My.Clients.SQL.SqlReadObject(SET("Datasession"),[SELECT * FROM CDBFDIR!B01 WHERE artnr='SIE.3RT'],.F.)
IF loB01.__LastGet<>-1
	*/ Dann haben wird hier die Datenstruktur der Tabelle B01
	*/ Der dritte Parameter gibt an, ob die Spalten __Changed und __New enthalten sind...
	*/ .F. - Ja, .T. - Nein! NoUpdateFields
ENDIF

SqlReadRecordset() - SQL to Recordset

Lesen eines Recordset's via ADODB aus der VFP Datenbank
Hilfeinformation
Lesen eines Recordset's via ADODB aus der VFP Datenbank
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlReadRecordset(tnDataSession AS INTEGER,tcSQLStatement AS STRING)
Variant = My.Clients.SQL.SqlReadRecordset(tnDataSession,tcSQLStatement)
Codeinformation
LOCAL loRS AS ADODB.Recordset
loRS = My.Clients.SQL.SqlReadRecordset(SET("DataSession"),[SELECT TOP 10 * FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%' ORDER BY artnr])
IF !ISNULL(m.loRS)
	*/ Recordset
ENDIF

SqlReadValue() - Value SQL Read

Rückgabe:[Variant], Wie SqlReadArray, jedoch wird ein Wert eines SQL Statements zurückgegeben.
Hilfeinformation
Wie SqlReadArray, jedoch wird ein Wert eines SQL Statements zurückgegeben.
CDBFDIR!
      => Mandantentabelle
CSYSDIR!
      => Systemtabelle
CNETDIR!
      => Netzwerktabelle
CFRXDIR!
      => Reporttabelle
CTMPDIR!
      => temporäre Tabelle
Die obigen Angaben werden im SQL durch die entsprechenden Pfade ersetzt!

Aufrufinformation
Variant = My.Clients.SQL.SqlReadValue(tnDataSession AS INTEGER,tcSQLStatement AS STRING,tiValue AS Integer)
Variant = My.Clients.SQL.SqlReadValue(tnDataSession,tcSQLStatement,tiValue)
Codeinformation
LOCAL lvValue AS Variant

lvValue = My.Clients.SQL.SqlReadValue(SET(DataSession"),[SELECT TOP 1 artnr,znr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3RT%' ORDER BY artnr])
? "artnr=",lvValue

lvValue = My.Clients.SQL.SqlReadValue(SET(DataSession"),[SELECT TOP 1 artnr,znr FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3RT%' ORDER BY artnr],2)
? "znr=",lvValue

SqlTransaction() - Transaktion

Führt eine Transaktion aus
Hilfeinformation
Rückgabe:[Boolean], Setzt den Transaktions- Status für den entsprechenden Daten-Server. 0 - Keine Transaktion oder Rollback, 1 - Beginn, 2 - End

Aufrufinformation
Variant = My.Clients.SQL.SqlTransaction(tnDataSession AS INTEGER,tnTransaction AS INTEGER)
Variant = My.Clients.SQL.SqlTransaction(tnDataSession,tnTransaction)
Codeinformation


SqlUpdate() - Update

Update eines Cursors
Hilfeinformation
Update eines Cursors.
Die Tabelle(n) muss/müssen IMMER einen Primärschlüssel haben!

Aufrufinformation
Variant = My.Clients.SQL.SqlUpdate(tnDataSession AS INTEGER,tcTable AS STRING,tcAlias AS STRING,tcIdName AS STRING,tcFilter AS String)
Variant = My.Clients.SQL.SqlUpdate(tnDataSession,tcTable,tcAlias,tcIdName,tcFilter)
Codeinformation
*/ My wird vorausgesetzt!
IF My.Clients.SQL.SQLRead(SET("DataSession"),[SELECT * FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3TH%'],"qB01")
	*/ Ein Cursor wurde erstellt!
	REPLACE ALL fparac1 WITH "PMS-"+TTOC(DATETIME()), __Changed WITH .T.
	IF NOT My.Clients.SQL.SQLUpdate(SET("DataSession"),"B01","qB01")
		=MESSAGEBOX(My.Clients.SQL.cLastError,64,"Fehler beim Update!")
	ENDIF
ENDIF

SqlUpdateAll() - 'angegeben' Cursor Updaten

Rückgabe:[Boolean], Update mehrerer Cursor mit Transaktion! tcList := Tabelleninfo1#Tabelleninfo2#... Tabelleninfo := Table;Cursor;PrimaryKey[;Filter]
Hilfeinformation
 Update mehrerer Cursor mit Transaktion! tcList := Tabelleninfo1#Tabelleninfo2#... Tabelleninfo := Table;Cursor;PrimaryKey[;Filter]
Die Tabelle(n) muss/müssen IMMER einen Primärschlüssel haben!

Aufrufinformation
Boolean = My.Clients.SQL.SqlUpdateAll(tnDataSession AS INTEGER, tcList AS STRING , toThermos AS OBJECT)
Boolean = My.Clients.SQL.SqlUpdateAll(tnDataSession,tcList,toThermos)
Codeinformation
*/ Ein kleines Beispiel:
LOCAL llReturn AS Boolean
*/ Update der Cursor qB01 und qD03 in die Datenbank
llReturn = My.Clients.SQL.SqlUpdateAll(SET("DataSession"),"B01;qB01;IDB01#D03;qD03;IDD03")

SqlUpdateObject() - Object to Table

Ein Datensatz-Objekt updaten
Hilfeinformation
Ein Datensatz-Objekt updaten
Die Tabelle(n) muss/müssen IMMER einen Primärschlüssel haben!

Aufrufinformation
Variant = My.Clients.SQL.SqlUpdateObject(tnDataSession AS INTEGER,tcTable AS STRING,toRecord AS OBJECT,tcIdName AS STRING,tcFilter AS STRING)
Variant = My.Clients.SQL.SqlUpdateObject(tnDataSession,tcTable,toRecord,tcIdName,tcFilter)
Codeinformation
*/ My ist bekannt...
LOCAL loB01 AS Object , llReturn AS Boolean
loB01 = My.Clients.SQL.SqlReadObject(SET("Datasession"),[SELECT TOP 1 * FROM CDBFDIR!B01 WHERE artnr LIKE 'SIE.3RT% ORDER BY artnr'],.F.)
IF loB01.__LastGet<>-1
	*/ Dann haben wird hier die Datenstruktur der Tabelle B01
	*/ Der dritte Parameter gibt an, ob die Spalten __Changed und __New enthalten sind...
	WITH loB01 AS Object
		.Notiz = "Notiz"
		.__Changed = .T.
	ENDWITH
	llReturn = My.Clients.SQL.SQLUpdateObject(SET("Datasession"),"B01",m.loB01,"IDB01")
	IF m.llReturn
		=Messagebox("Update Ok!",64,"Info...")
	ELSE
		=Messagebox(My.Clients.SQL.cLastError,16,"Fehler...")
	ENDIF
ENDIF

ToString() - String

Rückgabe:[String], wandelt den Inhalt einer Collection in einen String um
Hilfeinformation
Wandelt den Inhalt einer Collection in einen String um.

Aufrufinformation
String = My.Clients.SQL.ToString()
Codeinformation


Liste der Properties von SQL


_Provider1 - ADODB Provider für VFP

SQL-ADODB-Provider für VFP-Tabellen OHNE Datenbank. Passend zu _Server1
Hilfeinformation

Aufrufinformation
String = My.Clients.SQL._Provider1
Codeinformation


cIdx02 - Mandanten ID

Mandanten ID aus PMS32. Weist dem Pfadserver PMS_08.PmsPath den Mandanten zu. Setzen aller Pfade.
Hilfeinformation

Aufrufinformation
String = My.Clients.SQL.cIdx02
Codeinformation


cLastError -

Letzte Fehlermeldung im Klartext
Hilfeinformation

Aufrufinformation
String = My.Clients.SQL.cLastError
Codeinformation


cResetInfos - Reset

Wird benötigt, um GLOBAL Informationen zurückzusetzen. Je nach Klasse können die Informationen unterschiedlich sein!
Hilfeinformation

Aufrufinformation
String = My.Clients.SQL.cResetInfos
Codeinformation


lWritelog - Write Log?

Mitschreiben eines Log's
Hilfeinformation

Aufrufinformation
Boolean = My.Clients.SQL.lWritelog
Codeinformation


nCursorLocation - ADODB - Properties

Cursorlocation für ADODB.Connection
Hilfeinformation
*/ adUseNone                   1      OBSOLETE (appears only for backward compatibility). Does not use cursor services 
*/ adUseServer                   2       Default. Uses a server-side cursor 
*/ adUseClient                   3       Uses a client-side cursor supplied by a local cursor library. For backward compatibility, the synonym adUseClientBatch is also supported 

Aufrufinformation
Number = My.Clients.SQL.nCursorLocation
Codeinformation


nCursorLocation1 - ADODB - Properties

Cursorlocation
Hilfeinformation
*/ adUseNone                   1      OBSOLETE (appears only for backward compatibility). Does not use cursor services 
*/ adUseServer                   2       Default. Uses a server-side cursor 
*/ adUseClient                   3       Uses a client-side cursor supplied by a local cursor library. For backward compatibility, the synonym adUseClientBatch is also supported 

Aufrufinformation
Number = My.Clients.SQL.nCursorLocation1
Codeinformation


nCursorType - ADODB - Properties

Typ der Abfrage
Hilfeinformation
*/ adOpenUnspecified       -1       Does not specify the type of cursor. 
*/ adOpenForwardOnly       0       Default. Uses a forward-only cursor. Identical to a static cursor, except that you can only scroll forward through records. This improves performance when you need to make only one pass through a Recordset. (RecordCount=-1)
*/ adOpenKeyset             1       Uses a keyset cursor. Like a dynamic cursor, except that you can't see records that other users add, although records that  other users delete are inaccessible from your Recordset. Data changes by other users are still visible. 
*/ adOpenDynamic             2       Uses a dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the Recordset are allowed, except for bookmarks, if the provider doesn't support them. 
*/ adOpenStatic             3       Uses a static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible. (RecordCount=N)

Aufrufinformation
Number = My.Clients.SQL.nCursorType
Codeinformation


nCursorType1 - ADODB - Properties

CursorType
Hilfeinformation
*/ adOpenUnspecified       -1       Does not specify the type of cursor. 
*/ adOpenForwardOnly       0       Default. Uses a forward-only cursor. Identical to a static cursor, except that you can only scroll forward through records. This improves performance when you need to make only one pass through a Recordset. (RecordCount=-1)
*/ adOpenKeyset             1       Uses a keyset cursor. Like a dynamic cursor, except that you can't see records that other users add, although records that  other users delete are inaccessible from your Recordset. Data changes by other users are still visible. 
*/ adOpenDynamic             2       Uses a dynamic cursor. Additions, changes, and deletions by other users are visible, and all types of movement through the Recordset are allowed, except for bookmarks, if the provider doesn't support them. 
*/ adOpenStatic             3       Uses a static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible. (RecordCount=N)

Aufrufinformation
Number = My.Clients.SQL.nCursorType1
Codeinformation


nError - Fehlernummer d. Fehlers

Fehlernummer des letzten Fehlers.
Hilfeinformation
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.

Aufrufinformation
Number = My.Clients.SQL.nError
Codeinformation
WAIT WINDOW My.Clients.SQL.nError

nLine - Zeilennummer d. Fehlers

Zeilennummer, in der der letzte Fehler auftrat
Hilfeinformation
Zeilennummer, in der der letzte Fehler auftrat

Aufrufinformation
Number = My.Clients.SQL.nLine
Codeinformation
WAIT WINDOW My.Clients.SQL.nLine

nLockType - ADODB - Properties

Welche Sperre?
Hilfeinformation
*/ adLockUnspecified  -1       Unspecified type of lock. Clones inherits lock type from the original Recordset. 
*/ adLockReadOnly       1       Read-only records 
*/ adLockPessimistic       2       Pessimistic locking, record by record. The provider lock records immediately after editing 
*/ adLockOptimistic      3       Optimistic locking, record by record. The provider lock records only when calling update 
*/ adLockBatchOptimistic 4       Optimistic batch updates. Required for batch update mode 

Aufrufinformation
Number = My.Clients.SQL.nLockType
Codeinformation


nLockType1 - ADODB - Properties

LockType
Hilfeinformation
*/ adLockUnspecified  -1       Unspecified type of lock. Clones inherits lock type from the original Recordset. 
*/ adLockReadOnly       1       Read-only records 
*/ adLockPessimistic       2       Pessimistic locking, record by record. The provider lock records immediately after editing 
*/ adLockOptimistic      3       Optimistic locking, record by record. The provider lock records only when calling update 
*/ adLockBatchOptimistic 4       Optimistic batch updates. Required for batch update mode 

Aufrufinformation
Number = My.Clients.SQL.nLockType1
Codeinformation


nMode - ADODB - Properties

Modus der Connection
Hilfeinformation
*/ adModeUnknown             0       Permissions have not been set or cannot be determined. 
*/ adModeRead                   1       Read-only. 
*/ adModeWrite                   2       Write-only. 
*/ adModeReadWrite             3       Read/write. 
*/ adModeShareDenyRead       4       Prevents others from opening a connection with read permissions. 
*/ adModeShareDenyWrite 8       Prevents others from opening a connection with write permissions. 
*/ adModeShareExclusive 12       Prevents others from opening a connection. 
*/ adModeShareDenyNone       16       Allows others to open a connection with any permissions. 
*/ adModeRecursive             0x400000       Used with adModeShareDenyNone, adModeShareDenyWrite, or adModeShareDenyRead to set permissions on all sub-records of the current Record. 

Aufrufinformation
Number = My.Clients.SQL.nMode
Codeinformation


nMode1 - ADODB - Properties

Zugriffsmode
Hilfeinformation
*/ adModeUnknown             0       Permissions have not been set or cannot be determined. 
*/ adModeRead                   1       Read-only. 
*/ adModeWrite                   2       Write-only. 
*/ adModeReadWrite             3       Read/write. 
*/ adModeShareDenyRead       4       Prevents others from opening a connection with read permissions. 
*/ adModeShareDenyWrite 8       Prevents others from opening a connection with write permissions. 
*/ adModeShareExclusive 12       Prevents others from opening a connection. 
*/ adModeShareDenyNone       16       Allows others to open a connection with any permissions. 
*/ adModeRecursive             0x400000       Used with adModeShareDenyNone, adModeShareDenyWrite, or adModeShareDenyRead to set permissions on all sub-records of the current Record. 

Aufrufinformation
Number = My.Clients.SQL.nMode1
Codeinformation


nRecords - Anzahl der Datensätze

Anzahl der betroffenen Datensätze
Hilfeinformation

Aufrufinformation
Number = My.Clients.SQL.nRecords
Codeinformation


nSeconds - Zeit des SQL's

Verarbeitungszeit in Sekunden
Hilfeinformation

Aufrufinformation
Number = My.Clients.SQL.nSeconds
Codeinformation


nWhatServer - Server

Wert:[Integer], Welcher Server wird angesteuert? 1- VFP Tabellen, 2 - VFP Tabellen über ADBO, ...
Hilfeinformation
Wert:[Integer], Welcher Server wird angesteuert? 1- VFP Tabellen, 2 - VFP Tabellen über ADBO, ...

Aufrufinformation
Number = My.Clients.SQL.nWhatServer
Codeinformation


Siehe auch : Hauptmenü /  Hauptindex /  Such Index /  Cursor Index /  Programm Module /  Tabellen Index /  Tabellenmodule /  Masken Index /  Programmcode Index /  Servicepacks /  My.Struktur /  Funktionen /  Sonstiges Index

Lokale Benutzerhilfe : Meine eigene Hilfe /  Zurück zur PMS32 - Hilfe


Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022  Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32  Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,  Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.  © PMS Compelec GmbH 2022 ® el-Projekt