Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 11 to 20 of 30 total |
Corrupt Temporary Table |
Mon, Dec 14 2015 10:43 AM | Permanent Link |
M Eric Hubert | I understand.
For now, i have no simple program. (The original program have 17 temporaries tables, 5 permanents tables, +20000 lines codes) I work on a "simple" demo Thanks .... To be continued |
Mon, Dec 14 2015 3:31 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Eric,
<< In the insert, if i change the line : TableBufferCODE_POSTAL.Assign (TableRTGDESTINEOCODE_POSTAL); By //TableBufferCODE_POSTAL.Assign (TableRTGDESTINEOCODE_POSTAL); Or TableBufferCODE_POSTAL.Value := '92350' There is no error >> Please send/post the SQL for creating both the target table and source tables for the above two tables. If you've already posted the target table's structure, then just indicate that. Something is probably mismatched between the two tables' structures, and that is most likely causing a problem with the Assign in a way that results in the error that you're seeing. Tim Young Elevate Software www.elevatesoft.com |
Tue, Dec 15 2015 6:15 AM | Permanent Link |
M Eric Hubert | The idea is good but i have already tested this.
I have replace all assign by tb1.value := tb2.value. And No Change with the error. I have also tested .asstring, .asinteger ... etc But it's seems that the problem is a problem ansi / Unicode. I use Delphi 7. All are in Ansi. With old EDB versions (Ansi / Unicode separate), the program work without any change But with EDB versions (Ansi / Unicode merge) the program bug according to the datas. If i change, only this temporary table by BDE, Oracle .... etc, the program work I have migrate for the last EDB version this summer. Actually, i am in 2.20 build 1. I work on a sample, but for now,, i can't reproduce it. |
Tue, Dec 15 2015 7:27 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Eric
>I work on a sample, but for now,, i can't reproduce it. That probably means that there's something else in the real application that's causing the problem. Out of interest, what happens if you delete the indices? Roy Lambert |
Tue, Dec 15 2015 7:30 AM | Permanent Link |
M Eric Hubert | "Out of interest, what happens if you delete the indices?"
I don't understand this step |
Tue, Dec 15 2015 8:39 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Eric
>"Out of interest, what happens if you delete the indices?" >I don't understand this step At the moment you think <<The error is on the index I_NO_ETQ.>> so if you don't create that index when you create the temporary table what happens. If you still get the error don't create the index I_LIASSE and see what happens. Roy Lambert |
Tue, Dec 15 2015 8:44 AM | Permanent Link |
M Eric Hubert | Ok, i understand.
But it's not possible without large change in the code (i have already tested this tip). I continue to search ....... |
Tue, Dec 15 2015 8:57 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Eric
>Ok, i understand. >But it's not possible without large change in the code (i have already tested this tip). >I continue to search ....... If you've already tested this what happened? Did the error still occur? If so its not the indices and either as Tim says its a problem with table structures, or there is something wrong with the data. Roy Lambert |
Tue, Dec 15 2015 9:28 AM | Permanent Link |
M Eric Hubert | I can't reproduce the problem in a simple program but i found where is the problem.
In the code i have also BookMark := TableBuffer.GetBookMark; Try TableBuffer.First; While Not TableBuffer.Eof And Not Finprog Do begin if Cle = CleSeuil then Try TableBuffer.Edit; TableBufferValider.Value := False; TableBufferNO_ETQ.Clear; TableBufferLIASSE.Clear; TableBufferNO_LIASSE.Clear; TableBufferCODE_PRESENTATION.Clear; TableBufferNIVEAU_PREPARATION.Clear; TableBufferMINS_POIDS.Clear; TableBufferMAXS_POIDS.Clear; TableBufferMINL_POIDS.Clear; TableBufferMAXL_POIDS.Clear; TableBufferMINL_EXE.Clear; TableBuffer.Post; Except On E: Exception Do Raise Exception.Create ('TDataModuleDESTINEO....UndoPrepa' + Crlf + E.Message); End; TableBuffer.next; Application.processmessages; End; TableBuffer.GotoBookMark (BookMark); Finally TableBuffer.FreeBookMark (BookMark); End; I use bookmark for replace the dataset at the same position. If i replace this code by NoUnique := TableBufferNO_UNIQUE.Value; TableBuffer.IndexFieldNames := 'NO_UNIQUE'; TableBuffer.First; While Not TableBuffer.Eof And Not Finprog Do begin if Cle = CleSeuil then Try TableBuffer.Edit; TableBufferValider.Value := False; TableBufferNO_ETQ.Clear; TableBufferLIASSE.Clear; TableBufferNO_LIASSE.Clear; TableBufferCODE_PRESENTATION.Clear; TableBufferNIVEAU_PREPARATION.Clear; TableBufferMINS_POIDS.Clear; TableBufferMAXS_POIDS.Clear; TableBufferMINL_POIDS.Clear; TableBufferMAXL_POIDS.Clear; TableBufferMINL_EXE.Clear; TableBuffer.Post; Except On E: Exception Do Raise Exception.Create ('TDataModuleDESTINEO....UndoPrepa' + Crlf + E.Message); End; TableBuffer.next; Application.processmessages; End; if Not TableBuffer.Findkey([NoUnique]) then Raise Exception.Create ('NO_UNIQUE ' + IntToStr(Nounique) + ' non trouvé.'); TableBuffer.IndexName := 'I_LIASSE'; The same thing but i use the primary key. All work without error. I have tested also Bookmark but for the edit i have: TableBuffer.Edit; TableBufferValider.Value := False; TableBuffer.Post; The error is the same when i want to edit NO_ETQ in other part of the program Any idea ? |
Tue, Dec 15 2015 10:55 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Eric
Doesn't make any sense to me but if its fixed the problem - good. Roy Lambert |
« Previous Page | Page 2 of 3 | Next Page » |
Jump to Page: 1 2 3 |
This web page was last updated on Thursday, May 23, 2024 at 07:54 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |