Zum Inhalt springen

bigpoint

Mitglieder
  • Gesamte Inhalte

    1.243
  • Benutzer seit

  • Letzter Besuch

Beiträge von bigpoint

  1. Original geschrieben von Klotzkopp

    xoleHlp.Lib ins Projekt gelinkt?

    ja den Fehler kriege ich auch nicht mehr, aber beim debugin komme nicht weiter bei der stelle

    
    	// Get the command creation interface for the session.
    
    			if (FAILED(hr = pIDBCreateSession->CreateSession(NULL,
    
    			 IID_IDBCreateCommand, (IUnknown**) &pIDBCreateCommand)))
    
    		{
    
    			AtlTraceErrorRecords(hr);
    
    			return hr;
    
    		}
    
    

    das ganze mache ich in Funktion Open vor

    CDBPropSet dbinit(DBPROPSET_DBINIT);

    Fehler:

    Unbehandelte Ausnahme in ......exe 0xC0000005: Access Violation

  2. Original geschrieben von Goos

    Was ist automatisch? Du musst natuerlich schon selbst was machen, von ganz allein gehts nicht ;)

    Goos

    klaro, automatisch meine ich dass ich nicht immer vor einem insert es setzen auf on muß.

    Original geschrieben von Goos

    Ich empfehle dazu in den BOL im Index "user options option" einzugeben.

    Goos

    hmm..., und was ist BOL :confused:

  3. Eigentlich das ganze dreht sich nur um XACT_ABORT, denn wenn ich direkt von SQL Server versuche was zu inserten muß ich XACT_ABORT auf on setzen.

    Ich dachte mir das gleich mache ich mit OLE DB, also in eine sesion SET XACT_ABORT ON und dann insert, etwa so :

    CCommand<CNoAccessor,CNoRowset> cmoo;

    cmoo.Create(session, " SET XACT_ABORT ON");

    cmoo.Open();

    leider bevor ich es mache muß ich in CDBPropSet in sagen dass ich inserten will und dass brieng in durcheinander ( glaube ich )

    Andere Frage: wenn ich inserten will mit OLE DB muss ich auch denn command öffnen mit select * from tabelle und alle Daten holen ( was bei vielen Daten sehr lange dauern kann ) oder gibt es eine andere Möglichkeit ???

  4. stimmt, dann kriege ich aber Fehler :

    error LNK2001: Nichtaufgeloestes externes Symbol "long __cdecl DtcGetTransactionManager(char *,char *,struct _GUID const &,unsigned long,unsigned short,void *,void * *)" (?DtcGetTransactionManager@@YAJPAD0ABU_GUID@@KGPAXPAPAX@Z)

    also ich versuche es so:


    // SQLOLEDB interfaces used in the example.
    IDBCreateSession* pIDBCreateSession = NULL;
    ITransactionJoin* pITransactionJoin = NULL;
    IDBCreateCommand* pIDBCreateCommand = NULL;
    IRowset* pIRowset = NULL;

    // Transaction dispenser and transaction from MS DTC.
    ITransactionDispenser* pITransactionDispenser = NULL;
    ITransaction* pITransaction = NULL;


    // Get the command creation interface for the session.
    if (FAILED(hr = pIDBCreateSession->CreateSession(NULL,
    IID_IDBCreateCommand, (IUnknown**) &pIDBCreateCommand)))
    {
    AtlTraceErrorRecords(hr);
    return hr;
    }

    // Get a transaction dispenser object from MS DTC and
    // start a transaction.
    if (FAILED(hr = DtcGetTransactionManager(NULL, NULL,
    IID_ITransactionDispenser, 0, 0, NULL,
    (void**) &pITransactionDispenser)))
    {
    AtlTraceErrorRecords(hr);
    return hr;
    }
    if (FAILED(hr = pITransactionDispenser->BeginTransaction(
    NULL, ISOLATIONLEVEL_READCOMMITTED, ISOFLAG_RETAIN_DONTCARE,
    NULL, &pITransaction)))
    {
    AtlTraceErrorRecords(hr);
    return hr;
    }
    [/PHP]

    wenn ich aber die DtcGetTransactionManager auskommentire kriege ich beim debugging auf der stelle pIDBCreateSession->CreateSession

    abnormale Fehler

  5. hmm... schuld sind wider die CDBPropSet, denn wenn ich es so schreibe

    propset.AddProperty(DBPROP_UPDATABILITY, true);

    dann funktioniert , leider kann ich kein insert usw machen ( logischerweise )

    wenn ich so schreibe

    propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE );

    kriege ich Fehler ;((((

    Ich habe im netz so was gefunden, so was

    leider komme ich damit nicht klar denn die Funktion :

    DtcGetTransactionManager wird bei mir nicht gefunden ;((

    Kann mir jemand helfen ????????????????

  6. Moment, alles was du da oben geschrieben hast passiert genau so im Query ( die Prozedur wird nur einmal kompiliert und zwar beim Erstellung ) aber egal.

    Wie kannst du es bitte aber ohne Cursor lösen.

    Da mein Beispiel :


    CREATE procedure pTest
    as
    declare @satz char(1)
    declare @do_insert tinyint
    declare @do_update tinyint
    declare @pws int
    declare @datum smalldatetime
    declare @maxdatum datetime

    declare cur1 cursor FAST_FORWARD for
    select satz, pws, datum from TA
    open cur1
    fetch next from cur1 into @satz, @pws, @datum
    while @@fetch_status = 0
    begin
    select @maxdatum = max(datum) from TAA where pws=@pws
    if (@maxdatum is null or @datum > @maxdatum)
    begin
    select @do_insert = 0;
    select @do_update = 0;

    if (@satz = 'I')
    select @do_insert = 1;

    if (@satz = 'D')
    select @do_update = 1;

    if (@satz = 'U') begin
    select @do_insert = 1;
    select @do_update = 1;
    end

    if (@do_update = 1) begin
    UPDATE [TAA] SET [GBDatum]=dateadd(day, -1, @datum)
    WHERE pws=@pws and datum=(select max(datum) from TA aa where aa.pws=@pws)
    end

    if (@do_insert = 1) begin
    INSERT INTO [TAA]([PWS], [Datum], [GBDatum])
    SELECT [PWS], [Datum], '31.12.9999'
    FROM TA ah
    WHERE ah.pws=@pws and ah.Datum=@datum
    end
    end
    fetch next from cur1 into @satz, @pws, @datum
    end
    close cur1
    deallocate cur1
    GO

    [/PHP]

  7. DTS Pakete

    Ich habe da eine Frage:

    Also ich habe zwei Tabellen TA und TAA, in der Tabelle TA steht einen Wert jetzt muß ich mit dem Wert in der Tabelle TAA gehen und den Wert wenn nicht in der Tabelle TAA vorhanden inserten und dann noch updeten das Datum auf „unbegrenzt“

    Wenn aber vorhanden inserten , Datum von altem Wert auf insert Datum setzen und in neuem Wert auf „unbegrenzt“ setzen.

    Das ganze habe ich mit cursor gemacht.

    Wer aber cursor von SQL Server kennt weis dass, die ganze sache nicht grade schnell ist

    Deswegen überlege ich es mir ob ich nicht dazu einen DTS Paket programmieren soll.

    Was denkt Ihr wird es mit einem DTS schneller ????

  8. Original geschrieben von FinalFantasy

    Hi,

    hab ein CEdit Controll, dass multiline fähig ist. Nur, wie bring ich ein Newline in die Box??

    mit m_edit += "\n" krieg ich nur so einen komischen Balken....

    versuchmal so

    Format auf Mehrzeilig setzen

    und dann

    m_edit += "\n\r"

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...